提问



随着新手大量涌入Xcode,我确信有很多Xcode提示和技巧可供分享。


你的是什么?

最佳参考


切换到标题/源文件




  

      
  • 选项⌥ 命令⌘ 向上箭头↑

  •   
  • 查看> 切换到标题/来源文件

  •   



.m.h文件之间切换。



  

      
  • 在Xcode 4中,这是 ctrl 命令⌘ 向上箭头↑

  •   


其它参考1


⌘命令 + Double-Click on a symbol:跳转到符号的定义。


⌥选项 + Double-Click on a symbol:在符号的文档中查找文本。 (仅当您安装了符号的文档集时才有效。)


收藏夹栏:



收藏夹就像你在Safari中存储一样 - 很受欢迎。我经常使用它作为存储快捷方式的地方(你可以通过拖放来完成)到我现在使用的文件。通常,当我处理大型或不熟悉的项目时,这会更有用。


要显示收藏夹栏,请选择以下菜单选项:



  • View> Layout> Show Favorites Bar


其它参考2


自动完成键盘快捷键



Tab⇥ OR Control ^ /:选择下一个自动完成参数。


Shift⇧ Tab⇥ OR Shift⇧ Control ^ /:选择上一个自动 - 完成论证。


Escape⎋:显示自动完成弹出列表。

其它参考3


关闭撤消过去最后一点警告



保存后尝试撤消时,您将收到以下提示:



  你即将撤消过去
  指向此文件已保存。你做
  想要这样做?



要删除此警告,请在终端窗口中输入以下内容:


defaults write com.apple.Xcode XCShowUndoPastSaveWarning NO





更改模板文件中的公司名称



将其粘贴到终端应用程序中:


defaults write com.apple.Xcode PBXCustomTemplateMacroDefinitions '{"ORGANIZATIONNAME" = "Microsoft";}'





在所有模板中更改com.yourcompanyname:




  1. 找到目录:/Developer/Platforms/iPhoneOS.platform/Developer/Library/Xcode/Project Templates/Application

  2. 使用您喜欢的多文件搜索和替换工具将com.yourcompany更改为您通常用于为设备构建的任何值。我打开整个目录后使用了BBEdit的多重查找和替换。你应该替换所有info.plist文件中的值。我发现要更改8个文件。
    由于我忘记更改此字符串,构建失败的次数非常荒谬。






快速跳转到组和文件窗格中的组




  

      
  • Control ^ 选项⌥ Shift⇧ +<组名的第一个字母>

  •   



如果您按住上面的三个键,则可以通过按组名称的第一个字母快速跳转到左侧(组和文件)页面中的组。例如, Control ^ 选项⌥ Shift⇧ T 带您进入目标和控制^ 选项⌥ Shift⇧ S 到源。再次按它,​​它会跳转到SCM。有时需要多次尝试才能工作(我不知道为什么)。





在自动完成选项之间循环




  

      
  • Control ^

  •   
  • Shift⇧ Control ^ :在自动完成选项之间循环。

  •   



控制^ (控制周期)一个单词自动接受自动完成菜单中的第一个选项。尝试输入log然后 Control ^ 然后你会得到一个很好的NSLog语句。再次按它可以循环选择任何选项。所有可变选择,键入NSMu然后控制^





快速帮助




  

      
  • 控制^ 命令⌘ ?(当光标位于要查找的符号中时)

  •   
  • 选项⌥ +<双击符号>

  •   
  • 帮助>快速帮助

  •   



要从快速帮助窗口访问文档,请单击右上角的书籍图标。





请参阅文档以获取符号




  

      
  • 命令⌘ 选项⌥ +<双击符号>

  •   



带您直接阅读完整的文档。





进行非相邻文本选择




  

      
  • 命令⌘ 控制^ +<双击编辑器>

  •   



使用上面的快捷方式可以选择多个单词的奇怪方式。您可以在完全不同的位置选择单词,然后一次删除或复制它们。不确定这是否有用。据我所知,这只是Xcode。





使用Emacs键绑定来浏览代码



这个技巧适用于Mac上的所有Cocoa应用程序(TextEdit,Mail等),可能是最有用的东西之一。



  

      
  • 命令⌘ 左箭头命令⌘ 右箭头带您到行的开头和结尾

  •   
  • 控制^ a 控制^ e 做同样的事情

  •   
  • Control ^ n Control ^ p 将光标向上或向下移动一行。

  •   
  • Control ^ f Control ^ b 向前或向前移动光标一个空格

  •   



Shift⇧中的任何一个选择移动点之间的文本。将光标放在一行的中间,然后按 Shift⇧ Control ^ e ,您可以选择行的末尾。


选项⌥将允许您使用键盘导航单词。 选项⌥ 控制^ f 跳到当前单词的末尾。 选项⌥ 控制^ b 跳到当前单词的开头。您还可以使用选项⌥和左右箭头键一次移动一个单词。



  • 控制^ 左箭头控制^ 右箭头将光标移动到驼峰的部分之间字。



试试NSMutableArray。您可以将光标快速更改为NSArray,然后按Shift⇧ Control ^ >然后删除

其它参考4


快速打开......




  

      
  • 命令⌘ Shift⇧ D

  •   
  • 文件> 快速打开...

  •   



我非常喜欢 Open Quickly 功能,这在Xcode 3.1及更高版本中尤为出色。当您想要在项目或框架中打开文件或符号定义时,只需点击键盘快捷键,键入一些文件或符号的名称,使用向上箭头↑向下箭头↓来选择正确的结果(如果需要的话) ),然后点击返回↩打开文件或导航到符号定义。


在Xcode 4上:



  

      
  • 命令⌘ Shift⇧ o

  •   






打开快速使用当前单词作为搜索词



另外,直到两分钟前(当schwa在评论中指出)我对Xcode一直不了解的事情是,如果快速打开时编辑的文字插入内容调用后,该单词将用作快速打开搜索字词。

其它参考5


使用#pragma进行组织



您可以使用:


#pragma mark Foo


...作为在源文件中组织方法的一种方法。通过弹出菜单浏览符号时,Foo中的任何内容都将在列表中显示为粗体。


要显示分隔符(即水平线),请使用:


#pragma mark -


它非常有用,尤其适用于将委托方法或其他方法组合在一起。

其它参考6


1。断点objc_exception_throw



你应该总是在objc_exception_throw上有一个断点。


2。使用Zombie变量调试保留/释放问题



使用以下代码:


NSZombieEnabled = YES;
NSDeallocateZombies = NO;


...调试保留和释放问题。有关更多信息,请参阅Apple调试应用程序文档的查找内存泄漏部分。[47]


3。从Interface Builder

跳转到Xcode中的类

命令⌘ + Double-click在Interface Builder的文档窗口中的对象上跳转到Xcode中的那个类。这对于文件的所有者非常方便。


4。在Interface Builder中重用自定义对象



将自定义对象拖回Interface Builder的库,以便以后重用。


5。在Interface Builder

中选择重叠项

在接口生成器中的对象上控制^ Shift⇧ + Click,以查看鼠标下所有对象的菜单。


6。 Interface Builder手势指南



Interface Builder手势指南。[48]

其它参考7


Ctrl + 2 :访问当前文件中方法和符号的弹出列表。


这非常有用,因为使用此快捷方式,您可以完全使用键盘浏览文件。当您到达列表时,开始键入字符,列表将键入 - 选择您要查找的符号。

其它参考8


缩放编辑器



如果您的窗口同时显示详细信息和编辑器视图,则可以缩放编辑器以将编辑器视图展开到窗口的完整高度。 (这很容易找到,但许多人似乎忽略了它。)


您可以使用以下方法之一执行此操作:



  

      
  • 命令⌘ Shift⇧ E

  •   
  • 查看> 缩放编辑器

  •   
  • 拖动拆分器(在编辑器之间)
      窗口和上面的文件列表)
      向上。

  •   


其它参考9


获取Colin Wheeler的完整Xcode键盘快捷键列表(以PDF或PNG格式提供)。打印并将其保存在可见的位置(我已将其放在屏幕旁边的墙上)。[49]


编辑:
Xcode 3.2 [50]的更新版本


编辑2:
Xcode 4 [51]的更新版本

其它参考10


没有太多的键盘快捷键,但源中的TODO注释显示在编辑器顶部的方法/功能下拉列表中。


例如:


// TODO: Some task that needs to be done.


显示在方法和函数的下拉列表中,以便您可以直接跳转到它。


大多数Java IDE在滚动条中显示这些任务标记的标记,这更好,但这也有效。

其它参考11


⌘-[[和⌘-]]缩进和取消选定的文本。使清理源代码更多更容易。

其它参考12


将窗口分割为垂直分割而不是水平分割时保持选项。

其它参考13


双击方括号或括号以获得括号和括号匹配。

其它参考14


从命令行控制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
# e.g. for subversion commit
> echo 'export EDITOR="xed -wcx"' >> ~/.profile

> man xed               # there's a man page, too

其它参考15


Ctrl +向左/向右箭头进行文字内文字导航。我使用此功能将光标从变量中的camel hump跳到下一个。

其它参考16


Xcode支持可以通过 Edit 菜单末尾的插入文本宏菜单调用的文本宏。它们也可以使用Xcode的代码完成技术Code Sense调用。


例如,键入键序列p i m control-period会将#import "file"插入到代码中,file作为可编辑的标记,就像代码完成一样。

其它参考17


右键单击函数中的变量,然后单击范围内的全部编辑。自从我发现它以来,它已经使用了很多。


ctrl T

其它参考18


您可以让Xcode在Info.plist文件上运行预处理器:


        <key>CFBundleShortVersionString</key>
    #ifdef DEBUG
        <string>1.0 (debug)</string>
    #else
        <string>1.0</string>
    #endif


有关详细信息,请参见http://developer.apple.com/technotes/tn2007/tn2175.html。[52]

其它参考19


调试 - 如何使用GDB


对此仍然是新手,我发现诱捕和识别错误
令人生畏的工作。控制台,尽管它通常是一个强大的工具
不会产生非常直观的结果并知道你是什么
在调试器中查看可能同样困难
理解。在他们中的一些人的帮助下
关于Stack 溢出和关于的好文章
调试可以找到
Cocoa With Love它变得更加友好。[53]

其它参考20


在来回打开文件之间导航:

⌥⌘←点击
⌥⌘&RARR;

其它参考21


从技术上讲,它是一个Interface Builder提示,但它们是一本书匹配的对,所以我不认为这是主题......


Shift + Right单击其中一个控件,您将获得对象层次结构的精选选择列表。没有更多点击,点击,点击,沮丧!

其它参考22


使用触控板:



  • 向上滑动三个手指 - 在标题和源文件之间切换,这比 Cmd + Opt + Up 更容易;

  • 向下滑动三根手指 - 选择一个类或方法时在声明和定义之间切换,目前发现这两种类型;

  • 向左滑动三根手指 - 向后移动( Cmd + 选择 + );

  • 向右滑动三根手指 - 前进( Cmd + 选择 + );



用Xcode 3.2.5测试。

其它参考23


Xcode中的类浏览器!通过按 shift + + c 达到。您可以将范围缩小为仅显示Activity项目。只要您只想浏览类层次结构,它就会为您提供一个不那么混乱的视图。

其它参考24


使用]] 自动将[插入正确的位置



我来自.NET背景,所以我习惯输入一个符号,然后输入一个方法名称。所以我总是忘记在开始输入对象名称之前加入[。通常这意味着我需要去行的开头并手动添加[。我没有意识到我只能在当前光标位置按]] ,它会自动添加。


有一些方法可以使用它:在键入函数名称之后,或者在键入函数名称之前。


方法1:在函数名称

之后

myObject testMethod ]]


......变成:


[myObject testMethod]


......在]之后放置了插入符号。


方法2:在函数名称

之前

myObject ]]


......变成:


[myObject ]


......插入符号在 ]之前。


后者(2)的优点是代码完成将过滤对象的方法。对于前者(1),如果你试图在myObject之后立即调用代码完成,那么它就不会被过滤。(2)的另一个优点是它的行为更像其他使用点符号的编程语言。你键入然后,对象的名称只需]] 而不是来访问方法。

其它参考25


选择一个文本块并键入cmd-/以将其注释掉。再次删除注释字符。


当通过双击平衡字符(parens,括号,括号)与括号匹配组合时,这尤其有用。

其它参考26


能够快速查看可以从超类中覆盖的所有方法。例如,在扩展UITableViewController时,我只需输入我的实现:


- ta


然后我按ESC键查看我的超类中以ta开头的所有方法,例如


- (UITableViewCell *) tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath


这在采用协议时也有效。

其它参考27


命令⌘ alt⌥ shift T :显示项目树中当前编辑的文件。

其它参考28


ctrl + alt + + r 清除日志

其它参考29


使用类浏览器显示继承的方法



Apple的API参考文档没有显示从超类继承的方法。但有时候,能够查看类的所有可用功能(包括您自己的自定义类)非常有用。您可以使用类浏览器(从项目菜单)显示与当前项目相关的所有类的平面或分层列表。浏览器窗口右侧的上部窗格显示与在浏览器中选择的对象关联的方法列表。您可以使用配置选项表选择显示继承的成员以显示继承的方法以及所选类本身定义的方法。单击小书符号以转到相应的文档。