Objective c 如何设置命令+;作为一个关键的等价物?

Objective c 如何设置命令+;作为一个关键的等价物?,objective-c,xcode,cocoa,Objective C,Xcode,Cocoa,我希望将command plus作为菜单项的等效键,但是,当我尝试输入command plus时,它显示为command shift equals而不是加号。当我按下command plus时,它显示为command equals。有人知道我如何解决这个问题吗?要输入一个+符号,你实际上必须按Shift+'=',这就是为什么当你将Cmd+放入等效键时,它会显示为Cmd+Shift+=。如果你可以使用带有数字键盘的键盘,你可以使用numpad+键。这可以通过编程实现。将菜单项连接到interfac

我希望将command plus作为菜单项的等效键,但是,当我尝试输入command plus时,它显示为command shift equals而不是加号。当我按下command plus时,它显示为command equals。有人知道我如何解决这个问题吗?

要输入一个
+
符号,你实际上必须按Shift+'=',这就是为什么当你将Cmd+放入等效键时,它会显示为Cmd+Shift+=。

如果你可以使用带有数字键盘的键盘,你可以使用numpad
+
键。

这可以通过编程实现。将菜单项连接到interface builder中的属性(“zoomInItem”)。然后在应用程序启动完成时设置等效密钥

- (void)applicationDidFinishLaunching:(NSNotification*)aNotification {
    [self.zoomInItem setKeyEquivalent:@"+"];
}

您可以在文本编辑器中打开xib文件,添加编辑菜单项的等效键:

<menuItem title="Zoom In" keyEquivalent="+" id="hXP-3c-xDr"/>

在Xcode 8.2中输入等效键时,如果按⇧⌘= 你会看到一个小的弹出按钮,上面写着“alternates”。它呈现给你⇧⌘= 及⌘+ 作为替代(重要的是,这仅显示您是否从inspector中的文本字段输入等效键,而不是双击IB中菜单项的等效键槽)。我想这就是你想要选择的地方⌘+ 如果你想这样表现的话

然而,至少在使用Xcode 8.2.1在macOS Sierra 10.12/中编译我的应用程序时,这似乎不起作用。我将此作为一个解决方案发布,因为执行此操作后,Interface Builder中的关键等效项看起来是正确的,并且只有在运行时才会出现问题,因此我假设有一个版本的Xcode build toolchain或Cocoa可以实际工作

有趣的是,编辑故事板也会出现同样的症状(在IB中,等效的效果很好,但显示为空白):


如果将
NSShiftKeyMask
NSAlternateKeyMask
+
一起设置为键,则同样有效。

不确定问题的第二部分,因为您按了相同的键,但描述了不同的结果。我知道。问题是,我想让它显示为Cmd'+',而不是Cmd'='或Cmd Shift-'='。如果你的应用程序用户试图在不按“Shift”的情况下按Cmd和'+',你会欺骗他/她。苹果不同意。例如,请参见Safari中的“视图”菜单。
  <menuItem title="Increase Image Size" keyEquivalent="+" id="SCO-e4-3zd">
    <modifierMask key="keyEquivalentModifierMask" command="YES" />
    <connections>
      <action selector="increaseRowHeight:" target="Ady-hI-5gd" id="pu1-6E-HSr"/>
      </connections>
  </menuItem>
    decreaseThumbnailSizeItem.keyEquivalent = "+"
    decreaseThumbnailSizeItem.keyEquivalentModifierMask = NSCommandKeyMask