Xcode 4 idekeybindings用于一次击键的多个命令

时间:2011-05-12 08:00:14

标签: xcode xcode4

拼命想要自定义Xcode 4键绑定。

我正在编辑用户.idekeybindings文件(xcode有时会在打开时修改后擦除,然后尝试通过键绑定界面进行更新 - 可爱)

我的理解是提供一个s命令(选择器)而不是一个字符串应该执行所有这些命令。

<key>Text Key Bindings</key>
<dict>
    <key>Key Bindings</key>
    <dict>
        <key>@L</key>
        <string>selectLine:</string>
        <key>@d</key>
        <array>
            <string>selectLine:</string>
            <string>deleteBackward:</string>
        </array>
    </dict>
    <key>Version</key>
    <integer>3</integer>
</dict>

在这种特殊情况下,我的selectLine:for command-shift-l正常工作。

我的命令 - 发出哔哔声然后失败了。如果我删除数组中的任何一个命令,但将其保留在数组中,那么该命令有效(无关紧要)。但是只要我把它们结合起来就会失败。

任何人都知道我在这里做错了什么?缺乏关于如何做到这一点的知识令人沮丧。

2 个答案:

答案 0 :(得分:0)

仅仅因为你可以在xml结构中添加一个带有两个函数的数组,并不意味着Xcode在解析文件时正在寻找它。

如果读取文件的代码检查该值是数组还是字符串,那么进行一些循环,这将表现出您认为应该的方式。我的猜测是,Xcode正在读取与键相关的值,看到它不是一个字符串,并用那可爱的嘟嘟小夜曲。

答案 1 :(得分:0)

您想要做的事情绝对有可能。 (至少在XCode 10中,这是我在撰写本文时使用的语言)

不是将命令放入数组中:

<array>
  <string>selectLine:</string>
  <string>deleteBackward:</string>
</array>

只需将它们放入一个字符串条目中,并确保将它们用逗号分隔,如下所示:

<string>selectLine:, deleteBackward:</string>

干杯!