Des*_*ney 3 xcode cocoa applescript cocoa-touch objective-c
我想在过去一年半的时间里,在尝试Cocoa和Cocoa Touch开发时,我一直在努力让Xcode支持一种关键的宏来处理这个特定的编码场景......
我经常发现自己不知道在键入新的代码行时有多少消息发送链接在一起.例如,我可能会输入这个...(管道字符代表光标位置)
someVariable = [someObject someMessage]|
Run Code Online (Sandbox Code Playgroud)
...然后我意识到我需要从返回的对象链接一个消息(因为消息传递nil在ObjC中是安全的,这是一个常见的习惯用法.)所以我需要改变代码行看起来像这样......
someVariable = [[someObject someMessage] |
Run Code Online (Sandbox Code Playgroud)
最大的问题是必须在括号对之前添加一个左括号,我需要在每次需要时使用鼠标或重复键敲击.在浪费了大约40个小时后,试图找到任何类型的预先存在的键盘快捷方式或脚本(我调查了Perl,shell脚本,甚至是我的谷歌搜索中的一些emacs Lisp脚本.),我把这个怪物砍在了一起在AppleScript中,所有事情......
tell application "System Events"
delay 0.2
set editMenu to menu "Edit" of menu bar item "Edit" in menu bar 1 of
process "Xcode"
set kLeftArrowKey to 123
key code kLeftArrowKey
set theMenu to menu item "Balance" in menu "Format" of menu item
"Format" in editMenu
click theMenu
set theMenu to menu item "Bracket Expression" in menu "Objective C"
of menu item "Objective C" in menu "Insert Text Macro" of menu
item "Insert Text Macro" in editMenu
click theMenu
key code kLeftArrowKey
end tell
Run Code Online (Sandbox Code Playgroud)
必须有一个更好的方法.
我至少计算了以上五个问题...(如果被问到,我会评论.)我看到新的ObjC开发人员经常在网上投诉这个语法,我怀疑这个打字问题是主要的疼痛点.虽然我喜欢语法如何读取(以至于我避免了编码一致性的属性的点符号),但它是如何首次编写的那样糟糕.(就像AppleScript一样,具有讽刺意味的是,鉴于我当前的黑客攻击实施.)
帮助我结束我的痛苦,你可能会结束许多其他ObjC开发人员的痛苦......
您使用的是什么版本的Xcode?在我的版本中,如果我在有效的选择器名称后面键入右括号,则左括号会自动添加.
在Xcode 3.2中,转到"首选项",然后"文本编辑",然后选择"插入左括号".