授权转载,作者:吴白(微博

手指在键盘上飞速跳跃,终端上的代码也随着飞舞,是的这确实很酷。优秀的程序员总是这么一群人,他们不拘于现状,不固步自封,他们喜欢新奇的事,他们把自己发挥到极致。

指法攻略

放下您钟爱的鼠标吧,在前行之中它终会成为你的负累!

简记:

  • command 用来导航,控制导航区域

  • alt 控制右边的一些东西,比如Assistant Editor,utility editor

  • Control 编辑区域上的Jump bar的一些交互

Command 1~ 8: 跳转到导航区的不同位置

Command 0 :显示/隐藏导航区

Command Alt 1~ 6:在不同检测器之间跳转

Control Command Alt 1~4: 在不同库之间跳转

Control 1~ 6: 在Jump bar的不同标签页的跳转。

Command Alt 0: 显示/关闭工具区

Command + Enter: 显示标准单窗口编辑器

Command Alt Enter:打开Assistant editor

Command Alt Shift Enter: 打开版本控制编辑器

Command + Shift + Y:显示/隐藏调试区

Command + Shift + J,可展示当前你在工程导航器中打开的文件

Cmd + . 方便地暂停运行iOS模拟器

查找

使用 Command + Shift + Option + F 来打开 Find navigator 的替换模式,如果你嫌麻烦,也可以使用 Command + Shift + F 来打开 Find navigator 的查找模式,如果你还嫌麻烦,使用 command + 3 来打开 Find navigator,然后开启查找或者替换模式,选择一种最适合自己的方式就好。

快速打开

Command + Shift + O可以直接跳转到某个方法定义或者指定的代码文件。喜欢使用键盘但不喜欢使用鼠标的人会大爱这个快捷方式。键入第一个字母即可快速切换至某个文件或者找到特定的代码行。比如键入vDL,最先展示的结果是带有viewDidLoad()名的函数。

帮助

Command + Shift + 0 (Zero)打开文档和参考,键入代码中的某个关键字,文档提供了一些额外的资源和示例工程。当然也可以在变量、类或者方法名上执行Option+双击名称操作,从而更方便地跳转至文档。

在类或者方法名上执行Option + Left点击操作使用内联帮助可帮开发者快速学习类或代码片段的用法。如果点击了弹出视图底部的参考链接,那么就可以方便地跳转到Xcode提供的文档中。

个人比较中意Option+双击名称操作,毕竟来的直接。

代码片段

Xcode的代码片段(Code Snippets)创建自定义的代码片段,当你重用这些代码片段时,会给你带来很大的方便。

常用代码块

1.copy:

1
@property (nonatomic,copy) NSString *<#string#>;

2.strong:

1
@property (nonatomic,strong) <#Class#> *<#object#>;

3.weak:

1
@property (nonatomic,weak) <#Class#> *<#object#>;

4.assign:

1
@property (nonatomic,assign) <#Class#> <#property#>;

5.delegate:

1
@property (nonatomic,weak) id<<#protocol#>> <#delegate#>;

6.block:

1
@property (nonatomic,copy) <#Block#> <#block#>;

7.mark:

1
#pragma mark <#mark#>

8.gmark:

1
#pragma mark - <#gmark#>

9.warning:

1
#warning <#message#>

10.ReUseCell:

1
2
3
4
5
6
static NSString *rid=<#rid#>;
<#Class#> *cell=[tableView dequeueReusableCellWithIdentifier:rid];
if(cell==nil){
  cell=[[<#Class#> alloc] initWithStyle:UITableViewCellStyleDefault      reuseIdentifier:rid];
}
return cell;

11.initObj:

1
2
3
4
if(self=[super init]){
    <#init#>
}
return self;

12.dataFill:

1
2
3
-(void)dataFill:(<#ModelClass#> *)<#model#>{
    <#code#>
}

13.MainGCD:

1
2
3
dispatch_async(dispatch_get_main_queue(), ^{
<#code#>
});

14.GlobalGCD:

1
2
3
dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{
<#code#>
});

15.AfterGCD:

1
2
3
dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(<#delayInSeconds#> * NSEC_PER_SEC)), dispatch_get_main_queue(), ^{
<#code to be executed after a specified delay#>
});

16.OnceGCD:

1
2
3
4
static dispatch_once_t onceToken;
dispatch_once(&onceToken, ^{
<#code to be executed once#>
});

黑技能(给代码排序)

使用Spotlight来搜索Automator,并打开它;然后点击File->New,并选择服务(service)一项;在Actions筛选栏,输入shell,然后双击运行shell脚本;在新添加的服务的菜单栏上,检查Output replaces selected text;将脚本内容切换至sort | uniq;同时按下command + s,将服务保存为 Sort & Uniq。

设置一个顺手的Xcode的更多相关文章

  1. 如何通过命令行创建和设置一个MySQL用户

    我想要在MySQL服务器上创建一个新的用户帐号,并且赋予他适当的权限和资源限制.如何通过命令行的方式来创建并且设置一个MySQL用户呢? 要访问一个MySQL服务器,你需要使用一个用户帐号登录其中方可 ...

  2. 如何设置一个严格30分钟过期的Session(转载)

    本文地址: http://www.laruence.com/2012/01/10/2469.html 今天在我的微博(Laruence)上发出一个问题: 我在面试的时候, 经常会问一个问题: &quo ...

  3. 怎样设置一个DIV在所有层的最上层,最上层DIV

    怎样设置一个DIV在所有层的最上层,最上层DIV,其实很简单,只需要在这个DIV上使用这个样式即可,z-index:99999

  4. 解决微信OAuth2.0网页授权回调域名只能设置一个的问题

    https://github.com/HADB/GetWeixinCode GetWeixinCode 解决微信OAuth2.0网页授权回调域名只能设置一个的问题 使用方法 部署get-weixin- ...

  5. 如何设置一个严格30分钟过期的Session

    今天在我的微博(Laruence)上发出一个问题: 我在面试的时候, 经常会问一个问题: “如何设置一个30分钟过期的Session?”, 大家不要觉得看似简单, 这里面包含的知识挺多, 特别适合考察 ...

  6. xcode7.3 升级 xcode8.0 后权限设置问题(升级xcode 8.0 后构建版本不显示问题)

    xcode7.3 升级 xcode8.0 后权限设置问题(升级xcode 8.0 后构建版本不显示问题) 前两天为了适配 iOS10 的系统 我将xcode 7.3 升级到了 xcode 8.0 但是 ...

  7. ASP.NET中设置一个定时器来定时更新 转

    asp.net 定时器 比较少用,  中国红木网这是一个相当实用的功能,有了RSS博客镜像,就不需要在多处同时发布博客日志了.比如你同时在新浪上有自己的博客,又同时有自己的个人博客站点,那么你只需要在 ...

  8. 单位分配的IP地址和电脑主机绑定了,我想用设置一个无线路由器,让我的笔记本电脑和手机都能上网?

    单位分配的IP地址和电脑主机绑定了,我想用设置一个无线路由器,让我的笔记本电脑和手机都能上网?     配一个无线路由器就可以实现,将电脑IP配置成自动获取,找条网线一头插路由LAN口(路由器上有标明 ...

  9. android中,如果使用imageButton可以在drawable 中设置一个selector,但是imageView设置不起作用

    android中,如果使用imageButton可以在drawable 中设置一个selector,但是imageView设置不起作用,只要把Imageview的src给去掉就成了,src捕获了bac ...

随机推荐

  1. springMVC和spring各自扫描自己的注解不要相互混淆

    1.问题 执行 entityManager.flush();  总是报错:javax.persistence.TransactionRequiredException: no transaction ...

  2. ORACLE简单触发器

    因工作需要,尝试写一些建议的触发器,下面为其中一例. //创建一个名为TRG_FIN_OPB_ACCOUNTCARD的触发器 create or replace trigger TRG_FIN_OPB ...

  3. OpenStack 云计算基础知识

    OpenStack Docs: Currenthttp://docs.openstack.org/ OpenStack云计算快速入门教程 - OpenStack及其构成简介_服务器应用_Linux公社 ...

  4. Pyqt 获取打包二进制文件中的资源

    记得有一次打开一个单独exe程序,点击btn中的一个帮助说明按钮,在同级目录下就多出一个help.chm 文件并自动打开. 那这个exe肯定是把help.chm 打包到exe中,当我触发“帮助”按钮的 ...

  5. 利用stack结构,将中缀表达式转换为后缀表达式并求值的算法实现

    #!/usr/bin/env python # -*- coding: utf-8 -*- # learn <<Problem Solving with Algorithms and Da ...

  6. [LeetCode]Lowest Common Ancestor of a Binary Search Tree

    Given a binary search tree (BST), find the lowest common ancestor (LCA) of two given nodes in the BS ...

  7. nfs的挂载方法

    对于很多嵌入式驱动开发者,要进行很多次调试,如果nfs搭建不起来,那么对开发是很不方便的.经过三天,我终于把自己编的内核下载到开发板,并实现了nfs文件系统的挂载.今天把过程写下来. 思路 一 编译a ...

  8. VMware桥接模式无法自动化获取IP的解决方法

    虚拟机桥接无法自动获取IP的解决方法 在虚拟机VM里面装了centos系统,网卡选用桥接方式. 刚开始的时候还能自动获取到IP地址,突然有一天IP消失了,再怎么重启都无法获取IP地址.因为之前是可以获 ...

  9. 自动生成V字型

    <!DOCTYPE html><html> <head> <meta charset="UTF-8"> <title>& ...

  10. 2016 Multi-University Training Contest 1 C.Game

    Game Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/65536 K (Java/Others)Total Submis ...