让您的Xcode键字如飞

2019独角兽企业重金招聘Python工程师标准>>> hot3.png

作者:吴白(微博)

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

指法攻略

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

简记:

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

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

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

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

1467887027278280.gif

Command 0 :显示/隐藏导航区

1467887056236133.gif

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

1467887071892645.gif

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

1170656-5502a07ce79c6a87.gif

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

1467887105211909.gif

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,然后开启查找或者替换模式,选择一种最适合自己的方式就好。

1170656-c5494502126dd80a.jpg

快速打开

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

1170656-f07726dc67b46db0.jpg

帮助

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

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

1467887213145400.png

个人比较中意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#>

});

黑技能(给代码排序)

1467887331617427.gif

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

转载于:https://my.oschina.net/kaqijiang/blog/708162

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/261031.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【Android Developers Training】 6. 配置Action Bar

注&#xff1a;本文翻译自Google官方的Android Developers Training文档&#xff0c;译者技术一般&#xff0c;由于喜爱安卓而产生了翻译的念头&#xff0c;纯属个人兴趣爱好。 原文链接&#xff1a;http://developer.android.com/training/basics/actionbar/setting-up.html 配…

android 7 创建文件夹,Android 在 res/layout 文件夹 下创建一个 子文件夹实例

Android 资源文件夹 Layout 文件夹Layout文件是存放Android的布局文件的资源文件夹&#xff0c;但是如果你想要在里面创建子文件夹&#xff0c;你会发现xml文件报错。如何在Layout文件夹下方创建Layout的子文件夹。这边我们需要著一个一个点就是我们的Layout 文件夹是属于资源文…

一步一步学NUnit

转载&#xff1a;http://tech.sina.com.cn/s/2009-07-17/1129988785.shtml 单元测试基础知识 单元测试是开发者编写的一小段代码&#xff0c;用于检验被测代码的一个很小的、很明确的功能是否正确。通常而言&#xff0c;一个单元测试是用于判断某个特定条件(或者场景)下某个特定…

面向对象JS编程(一)——创建对象

1.普通模式 var person new Object();person.name "Laughing";person.age 28;person.job "Software Engineer";peron.sayName function(){ alert(this.name);};person.sayName(); 缺点&#xff1a;创建多个对象时&#xff0c;会产生大量的重复代码…

android功耗iphone,是心目中的安卓小屏旗舰吗?iPhone 8尺寸大小,4000mAh电池容量...

相信很多人都都喜欢小屏手机&#xff0c;但因为小屏手机总体需求不多&#xff0c;而且相对大屏更不好做&#xff0c;所以手机商都不愿意做小屏手机&#xff0c;这也导致市面上小屏手机非常少&#xff0c;苹果推出了iPhone 12 Mini&#xff0c;但是因为电池只有2200mAh&#xff…

mySQL 数据库错误

2019独角兽企业重金招聘Python工程师标准>>> java.sql.SQLException: The user specified as a definer (..%) does not exist 视图、存储过程的使用者若非其创建者&#xff0c;就会出现这样的错误 可以修改用户的权限或重新创建进行解决 转载于:https://my.oschina…

委托、事件的个人理解

事件&#xff1a;一个用event进行了封装的委托类型的变量&#xff0c;使得在进行注册的时候只能使用 或者- 需要一个触发者和一个执行者&#xff0c;类似于Observer模式中的Subject和Observer&#xff08;当一个对象的状态发生改变时&#xff0c;所有依赖于他的对象都会得到通知…

android 组建水平居中,Android开发借助LinearLayout实现垂直水平居中布局

释放双眼&#xff0c;带上耳机&#xff0c;听听看~&#xff01;在Android应用程序的开发中&#xff0c;有时需要限制水平和垂直屏幕的切换&#xff0c;今天这篇文章是技术狗小编为大家整理的Android应用借助LinearLayout实现垂直水平居中布局&#xff0c;希望对你学习这方面有所…

我不想再活在别人的世界里

我过多的关注别人的世界。 却没有去寻找属于自己的故事 总是犹豫着要不要出发 然后发现 一天就这么过去了。 转载于:https://www.cnblogs.com/zjjsxuqiang/p/3445392.html

面壁人VS智子 --- 搜索排序的作弊和反作弊

搜索引擎已经是目前网络流量最大入口&#xff0c;在大搜上&#xff0c;基本上大家打开网页做的第一件事情就是打开一个搜索引擎&#xff0c;然后键入你感兴趣的内容&#xff0c;然后开始浏览。如果是个电商的网站&#xff0c;你打开以后&#xff0c;基本上也是直接键入你感兴趣…

(转)网站推广优化教程100条(SEO,网站关键字优化,怎么优化网站,如何优化网站关键字)...

网站推广优化教程100条&#xff08;完整版)下面介绍新手建站推广完美教程&#xff0c;各位根据自己的实际情况酌情选用&#xff1a; 1、准备个好域名。①.尽量在5位数内&#xff0c;当然也不一定&#xff0c;反正要让用户好记。&#xff08;看个人&#xff09;&#xff1b;②.尽…

Android中attrs.xml文件的使用详解

$*********************************************************************************************$博主推荐&#xff1a;风萧兮兮易水寒&#xff0c;“天真”一去兮不复还。如何找到天真的那份快乐。小编倾力推荐app: 天真无谐下载方式&#xff1a;豌豆荚&#xff0c;应用宝…

细说JavaScript对象(1):对象的使用和属性

JavaScript 中的一切都可以视为对象&#xff0c;除了两个特例&#xff1a;null 和 undefined。 false.toString(); // false [1, 2, 3].toString(); // 1,2,3function Foo(){} Foo.bar 1; Foo.bar; // 1 一个经常容易被误解的就是数字常量不能视为对象&#xff0c;实际上数字常…

学习笔记:InnoDB存储结构及多版本实现

因为InnoDB是多版本化的数据库存储引擎, 它必须在表空间中保存关于旧版本数据行的信息。这个信息被存在名为rollback segment&#xff08;类似于Oracle中的回滚段&#xff09;的数据结构中。 在内部&#xff0c;InnoDB给数据库中的每一行添加三个域。一个是6字节的DB_TRX_ID域&…

access2003的使用

access2003中如何用sql语句创建表 http://zhidao.baidu.com/link?urldinVbwoI20Xz__NbcIeBPdkjeXRWmZNB0xJvdr0eMBqNflv_JcWgUoPw3ozFfqnTQ9FLkNv0XXs9loDR2Oc7Oq SQL 数据定义查询创建表&#xff1a; 第一张表&#xff08;藏书&#xff09; CREATE TABLE 藏书 (书号 Text(10)…

再见安卓 鸿蒙,安卓系统:鸿蒙系统,正式再见

原标题&#xff1a;安卓系统&#xff1a;鸿蒙系统&#xff0c;正式再见华为手机不能使用谷歌GMS服务已经差不多一年时间&#xff0c;据悉华为明年最新旗舰P40系列仍然不能使用GMS&#xff0c;最近爆料大神数码闲聊站称谷歌将不给华为手机授权Android R(安卓11系统)&#xff0c;…

Android 隐式意图的配置

本文地址&#xff1a;http://www.cnblogs.com/wuyudong/p/5677473.html&#xff0c;转载请注明源地址。 《Android 显示意图激活另外一个Actitity》一文介绍了一种激活Activity的方法 本文通过清单文件&#xff08;AndroidManifest.xml&#xff09;来实现意图的配置 Intent-fil…

fpga中wire和reg的区别

wire表示直通&#xff0c;即只要输入有变化&#xff0c;输出马上无条件地反映&#xff1b;reg表示一定要有触发&#xff0c;输出才会反映输入。wire表示直通&#xff0c;即只要输入有变化&#xff0c;输出马上无条件地反映&#xff1b;reg表示一定要有触发&#xff0c;输出才会…

Django Tips

新加admin.py需重启自带Web服务器才能显示Admin保存设置外键的默认值http://stackoverflow.com/questions/937954/how-do-you-specify-a-default-for-a-django-foreignkey-model-or-adminmodel-fieldhttp://stackoverflow.com/questions/5632848/django-default-value-for-user…

wordpress html音乐,WordPress引用百度Ting音乐方法

对于个人博客来说&#xff0c;要在文章中添加音乐&#xff0c;如果放在自己服务器上&#xff0c;一方面是成本问题&#xff0c;其次&#xff0c;大部分博主用的国外服务器&#xff0c;而国外对版权看得比较重&#xff0c;基本上不允许上传音乐&#xff0c;所以我们通常都是通过…