I want to have command-plus as a key equivalent for a menu item, however, when I try to enter command-plus, it shows up as command-shift-equals instead of a plus. And when I press com开发者_Go百科mand-plus, it shows up as command-equals. Does anyone know how I can get around this?
In Xcode 8.2 when entering a key equivalent, if you hit ⇧⌘= you get a little popup button saying "alternates" inside the field. It presents you ⇧⌘= and ⌘+ as alternates (importantly, this only shows if you enter the key equivalent from the text field in the inspector, not by double-clicking the key equivalent slot for a menu item in IB). This is where I presume you are intended to choose ⌘+ if you want it presented like that.
However, that doesn't actually appear to work at least when compiling my app in macOS Sierra 10.12 / with Xcode 8.2.1. I'm posting this as a solution as the key equivalent looks correct in Interface Builder after doing this, and issue with it happens only during runtime so I assume there is a version of the Xcode build toolchain or Cocoa where this actually works.
Interestingly, editing the storyboard gives the same symptom (the equivalent works fine in IB but shows up blank ):
<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>
A third solution has the same runtime symptoms too (assign an outlet to the item and set it in code):
decreaseThumbnailSizeItem.keyEquivalent = "+"
decreaseThumbnailSizeItem.keyEquivalentModifierMask = NSCommandKeyMask
The same works when setting either NSShiftKeyMask
or NSAlternateKeyMask
together with +
as the key.
To type a +
sign you actually have to press Shift+'=', that's why when you put Cmd+ into key equivalent it shows up as Cmd+Shift+=.
This can be done programmatically. Connect the menu item to a property ("zoomInItem") in interface builder. Then set the key equivalent when the application is finished launching.
- (void)applicationDidFinishLaunching:(NSNotification*)aNotification {
[self.zoomInItem setKeyEquivalent:@"+"];
}
If you have access to a keyboard with a numerical keypad, you could use the numpad +
key.
You can open the xib file in a text editor add edit the menu item's key equivalent there:
<menuItem title="Zoom In" keyEquivalent="+" id="hXP-3c-xDr"/>
精彩评论