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

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

指法攻略

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

简记:

  • 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学习(二)

    SpringMVC入门(注解方式) 需求 实现商品查询列表功能. 第一步:创建Web项目 springmvc02 第二步:导入jar包 第三步:配置前端控制器 在WEB-INF\web.xml中配置前 ...

  2. WPF使用IDataErrorInfo进行数据校验

    这篇博客将介绍如何使用IDataErrorInfo进行数据校验.下面直接看例子.一个Customer类,两个属性(FirstName, Age) class Customer { public str ...

  3. 【SSM】Eclipse使用Maven创建Web项目+整合SSM框架

    自己接触ssm框架有一段时间了,从最早的接触新版ITOO项目的(SSM/H+Dobbu zk),再到自己近期来学习到的<淘淘商城>一个ssm框架的电商项目.用过,但是还真的没有自己搭建过, ...

  4. IOC装配Bean(注解方式)

    Spring的注解装配Bean Spring2.5 引入使用注解去定义Bean @Component 描述Spring框架中Bean Spring的框架中提供了与@Component注解等效的三个注解 ...

  5. eclipse运行速度优化(解决狂读盘、发布慢、CPU100%等问题)

    转自:http://blog.csdn.net/wyp_810618/article/details/8953921 我的ECLIPSE运行时速度奇慢,具体表现为: 1.只要ECLIPSE启动后,硬盘 ...

  6. VBA: Cant find project or librar

    Appears OK to me but the error message " Cant find project or library." suggests it could ...

  7. package.json 字段全解析

    Name 必须字段. 小提示: 不要在name中包含js, node字样: 这个名字最终会是URL的一部分,命令行的参数,目录名,所以不能以点号或下划线开头: 这个名字可能在require()方法中被 ...

  8. Struts2文件上传与下载

    一,页面 index.html 在页面中最重要的就是这个文件上传用的 form 表单,注意这里一定要把 form 的encyType属性明确标定为“multipart/form-data”,只有这样. ...

  9. 读取properties文件以及properties的用法

    package cn.util; import java.io.IOException; import java.io.InputStream; import java.util.Properties ...

  10. CSS:在IE浏览器下,元素下沉一行的解决办法

    HTML: <ul> <li><a href="">嘻嘻嘻嘻嘻嘻</a><span>2015-12-17</spa ...