Xcode的隐藏function
随着新手大量涌入Xcode,我相信有很多Xcode提示和技巧可以共享。
你是什么?
切换到页眉/源文件
选项⌥ 命令⌘ 向上箭头↑
视图 > 切换到页眉/源文件
在.m
和.h
文件之间切换。
- 在Xcode 4这是ctrl 命令⌘ 向上箭头↑
⌘命令 + Double-Click on a symbol
:跳转到一个符号的定义。
⌥选项 + Double-Click on a symbol
:在符号的文档中查找文本。 (只有安装符号的Doc Set时才可以使用。)
collections栏:
collections夹栏就像你在Safari中存储 – 最喜欢的。 我经常使用它作为一个地方存储快捷方式(你可以通过拖放)到我现在使用的文件。 一般来说,这是更有用的,当我正在与一个大型或陌生的项目工作。
要显示collections夹栏,请select以下菜单选项:
-
View
>Layout
>Show Favorites Bar
自动完成键盘快捷键
Tab⇥OR Control ^ / :select下一个自动完成参数。
Shift⇧Tab⇥OR Shift⇧Control ^ / :select上一个自动完成参数。
退出⎋ :显示自动完成popup列表。
closures“撤销最后一点”警告
当您保存后尝试撤消时,您将收到以下提示:
“你即将撤消这个文件被保存的最后一点,你想这样做吗?
要摆脱此警告,请在terminal窗口中input以下内容:
defaults write com.apple.Xcode XCShowUndoPastSaveWarning NO
更改模板文件中的公司名称
将其粘贴到terminal应用程序中:
defaults write com.apple.Xcode PBXCustomTemplateMacroDefinitions '{"ORGANIZATIONNAME" = "Microsoft";}'
在所有模板中更改“ com.yourcompanyname
”:
- find目录:
/Developer/Platforms/iPhoneOS.platform/Developer/Library/Xcode/Project Templates/Application
- 使用您最喜爱的多文件search和replace工具将
com.yourcompany
更改为您通常用于为设备构build的任何值。 在打开整个目录后,我使用了BBEdit的多重查找和replacefunction。 您应该replace所有info.plist
文件中的值。 我发现有8个文件需要更改。 由于忘记修改这个string,构build失败的次数是荒谬的。
在“组和文件”窗格中快速跳转到组
- 控制^ 选项⌥Shift + + <组名的首字母>
如果您按住上面的三个键,则可以通过按组名称的第一个字母快速跳转到左侧(组和文件)页面中的组。 例如, Control ^ Option? Shift? T将带您到目标和控制^ Option? Shift? S到Source 。 再按一次,它跳转到SCM。 有时需要几次尝试才能工作(我不知道为什么)。
在自动完成选项之间循环
控制^ 。
Shift⇧Control ^ 。 :在自动完成选项之间向后循环。
控制^ 。 (控制周期)后,一个字自动接受自动完成菜单的第一个select。 尝试inputlog
然后控制^ 。 你会得到一个很好的NSLog
语句。 再按一次可循环select。 要查看所有可变选项,请键入NSMu
然后键入Control ^ 。 。
快速帮助
控制^ 命令⌘ ? (当你的光标在符号中查找时)
选项⌥ + <双击一个符号>
帮助>快速帮助
要从“快速帮助”窗口访问文档,请单击右上angular的书本图标。
请参阅符号的文档
- 命令⌘ 选项⌥ + <双击一个符号>
让你直接阅读完整的文档。
进行不相邻的文本select
- 命令⌘ 控制^ + <在编辑器中双击>
使用上面的快捷方式来select多个单词的奇怪方法。 你可以在完全不同的地方select单词,然后删除或复制一次。 不知道这是否有用。 据我所知,它只是Xcode。
使用Emacs密钥绑定来浏览你的代码
这个技巧适用于Mac上的所有Cocoa应用程序(TextEdit,Mail等),可能是最有用的东西之一。
- 命令⌘ 向左箭头或命令⌘ 向右箭头转到行的开头和结尾。
- 控制^ a和控制^ e做同样的事情
- 控制^ n和控制^ p将光标向上或向下移动一行。
- 控制^ f和控制^ b将光标向后或向前移动一个空格
按下Shift⇧select移动点之间的文字。 将光标放在一行的中间,然后按下Shift⇧Control ^ e ,您可以select该行的末尾。
按选项⌥可让您用键盘导航文字。 选项⌥ 控制^ f跳到当前单词的末尾。 选项⌥ 控制^ b跳到当前单词的开头。 您也可以使用选项⌥ ,使用左右箭头键一次移动一个字。
- 控制^ 左箭头和控制^ 右箭头在一个单词的驼峰部分之间移动光标。
尝试用NSMutableArray
。 把光标放到NS
,按下Shift→ Control→ Right Arrow→ Delete ,可以快速地将其改为NSArray
。
快速打开…
Command⌘Shift⇧D
文件 > 快速打开…
我是“ 快速开放”function的忠实粉丝,这在Xcode 3.1及更高版本中尤其出色。 当您想要打开项目或框架中的文件或符号定义时,只需点击键盘快捷方式,键入文件或符号的名称,使用向上箭头↑和向下箭头↓select正确的结果(如果需要的话),然后按Return↩打开文件或导航到符号定义。
在Xcode 4上:
- Command⌘Shift⇧o
快速打开使用当前单词作为search词
另外,直到两分钟前(当schwa在评论中指出),我不知道Xcode的一点是,如果编辑器的文本插入符号在一个单词内部被引用时,该单词将被用作打开快速search字词。
使用#pragma进行组织
您可以使用:
#pragma mark Foo
…作为在您的源文件中组织方法的一种方式。 通过popup菜单浏览符号时,无论您在Foo
放置什么,都会在列表中显示为粗体。
要显示分隔符(即水平线),请使用:
#pragma mark -
这非常有用,特别是将代表方法或其他方法组合在一起。
1.“objc_exception_throw”的断点
你应该总是在objc_exception_throw
上有一个断点 。
2.用“Zombie”variablesdebugging保留/释放问题
使用下面的代码:
NSZombieEnabled = YES; NSDeallocateZombies = NO;
…debugging保留和释放问题。 有关更多信息,请参阅Apple的“debugging应用程序”文档的“查找内存泄漏”部分。
3.从Interface Builder跳转到Xcode中的类
Command⌘ +在Interface Builder的Document Window中Double-click
一个对象,跳转到Xcode中的那个类。 这是文件的所有者非常方便。
4.重新使用Interface Builder中的自定义对象
将自定义对象拖回到Interface Builder的库中以供以后重复使用。
5.在Interface Builder中select重叠的项目
Ctrl + Shift + + Click
界面生成器中的一个对象,查看鼠标下所有对象的菜单。
6.界面生成器手势指南
界面生成器手势指南 。
Ctrl + 2 :访问当前文件中方法和符号的popup列表。
这是非常有用的,因为有了这个快捷方式,您可以完全使用键盘浏览文件。 当你到达列表,开始input字符,列表将键入 – select您正在寻找的符号。
缩放编辑器中
如果您的窗口同时显示细节和编辑器视图,则可以放大编辑器以将编辑器视图展开到窗口的整个高度。 (这很容易find,但很多人似乎忽略了它。)
您可以通过使用下列方法之一来执行此操作:
Command⌘Shift⇧E
视图 > 缩放编辑器input
将分离器(在编辑器窗口和其上方的文件列表之间)向上拖动。
获取Colin Wheeler完整的Xcode键盘快捷键列表 (以PDF或PNG格式提供)。 打印并保持在可见的地方(我已经把它放在屏幕旁边的墙上)。
编辑: Xcode 3.2的更新版本
编辑2: Xcode 4的更新版本
没有太多的键盘快捷键,但源代码中的TODO注释显示在编辑器顶部的方法/function下拉列表中。
举个例子:
// TODO: Some task that needs to be done.
显示在方法和函数的下拉列表中,所以你可以直接跳转到它。
大多数Java IDE在滚动条中显示这些任务标记的标记,这更好,但是这也是可行的。
⌘-[和⌘-]缩进和取消所选文本。 使清理源代码更容易。
保持选项,而分裂窗口垂直而不是水平分割。
双击方括号或圆括号以获得括号和括号的匹配。
从命令行控制Xcode的文本编辑器:xed
> xed -x # open a new untitled document > xed -xc foo.txt # create foo.txt and open it > xed -l 2000 foo.txt # open foo.txt and go to line 2000 # set Xcode to be your EDITOR for command line tools # eg for subversion commit > echo 'export EDITOR="xed -wcx"' >> ~/.profile > man xed # there's a man page, too
“Ctrl +向左/向右箭头”进行词内文本导航。 我使用这个特性将光标从一个variables中的“驼峰”跳转到下一个variables。
Xcode支持可以通过Edit菜单末尾的Insert Text Macro菜单调用的文本macros 。 他们也可以使用Code Sense,Xcode的代码完成技术来调用。
例如,input密钥序列pim control-period
会将#import "file"
插入到您的代码中,并将file
作为可编辑标记,就像代码完成一样。
右键单击函数中的一个variables,然后单击编辑范围内的所有variables。 自从我发现这一点以来,一直使用它。
ctrl⌘T
你可以让Xcode在你的Info.plist文件上运行预处理器:
<键> CFBundleShortVersionString </键> #ifdef DEBUG <string> 1.0(debug)</ string> #其他 <string> 1.0 </string> #万一
有关详细信息,请参阅http://developer.apple.com/technotes/tn2007/tn2175.html 。
debugging – 如何使用GDB
对于这件事还是一个新的东西,我觉得陷阱和识别错误是一件相当艰巨的工作。 控制台,尽pipe它是一个强大的工具,通常不会产生非常直观的结果,知道你在debugging器中看到的东西也同样难以理解。 在Stack Overflow上他们中的一些人的帮助,以及可爱的Cocoa中可以find的有关debugging的好文章,它变得更友好一些。
在打开的文件之间来回导航:
⌥⌘←
⌥⌘→
从技术上来说,一个界面生成器的提示,但他们是一本书配对,所以我不认为这是脱离主题…
Shift +右键单击你的控件之一,你会得到一个很好的对象层次结构的select列表。 没有更多的点击,点击,点击,沮丧!
使用触控板:
- 向上滑动三个手指 – 在标题和源文件之间切换,这比Cmd + Opt + Up更容易;
- 向下滑动三指 – select一个类或方法时在声明和定义之间切换,目前find这两种types;
- 向左滑动三个手指 – 返回( Cmd + Opt + 左 );
- 向右滑动三个手指 – 前进( Cmd + Opt + Right );
用Xcode 3.2.5进行testing。
Xcode中的类浏览器 ! 通过按Shift + ⌘ + c达到。 你可以缩小范围,只显示你的活动项目。 只要您只想浏览类层次结构,它就会给您一个不太混乱的视图。
使用]自动插入[
在正确的位置
我来自.NET的背景,所以我习惯于input一个符号,然后input它的一个方法名称。 所以我总是忘记包括[
在我开始input对象名称之前。 通常这意味着我将需要去行的开始,并添加[
手动。 我没有意识到我可以按下当前的光标位置,它会自动添加。
有一些方法可以使用这个:在input函数的名字之后,或者在input函数的名字之前。
方法1:在函数名称之后
myObject testMethod
]
变成:
[myObject testMethod]
…在脱口而出之后
方法2:函数名称前
myObject
]
变成:
[myObject ]
…在脱口而出之前 。
后者(2)的优点是代码完成将过滤你的对象的方法。 而前者(1)如果您尝试在myObject
之后立即调用代码完成,则不会被过滤。 (2)的另一个优点是它更像使用点符号的其他编程语言。 你只需input对象的名称]而不是。 访问一个方法。
select一个文本块,然后inputcmd- /将其注释掉。 再次删除注释字符。
通过双击平衡字符(parens,大括号,括号)结合大括号匹配,这是特别有用的。
能够快速查看所有可以从超类中重写的方法。 例如,当扩展UITableViewController我只是input我的实现:
- ta
然后我按ESC来查看我的父类中以“ta”开头的所有方法,如
- (UITableViewCell *) tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
这也适用于采用协议。
Command⌘alt⌥shift T :显示项目树中当前编辑的文件。
ctrl + alt + ⌘ + r清除日志
使用类浏览器显示inheritance的方法
Apple的API参考文档不显示从超类inheritance的方法。 有时候,但是。 能够看到课程的全部function(包括您自己的自定义课程)是非常有用的。 您可以使用“类浏览器”(从“项目”菜单中)显示与当前项目相关的所有类的平面或分层列表。 浏览器窗口右侧的上窗格显示与在浏览器中select的对象关联的方法列表。 您可以使用“configuration选项”工作表select“显示inheritance的成员”以显示inheritance的方法以及由选定的类本身定义的方法。 您点击小书符号去相应的文档。