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 ”:

  1. find目录: /Developer/Platforms/iPhoneOS.platform/Developer/Library/Xcode/Project Templates/Application
  2. 使用您最喜爱的多文件search和replace工具将com.yourcompany更改为您通常用于为设备构build的任何值。 在打开整个目录后,我使用了BBEdit的多重查找和replacefunction。 您应该replace所有info.plist文件中的值。 我发现有8个文件需要更改。 由于忘记修改这个string,构build失败的次数是荒谬的。

在“组和文件”窗格中快速跳转到组

  • 控制^ 选项⌥Shift + + <组名的首字母>

如果您按住上面的三个键,则可以通过按组名称的第一个字母快速跳转到左侧(组和文件)页面中的组。 例如, Control ^ Option? Shift? T将带您到目标控制^ Option? Shift? SSource 。 再按一次,它跳转到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的方法以及由选定的类本身定义的方法。 您点击小书符号去相应的文档。