来自NSMenuItem类参考
如果要将Backspace键指定为菜单项的等效键,请使用带有NSBackspaceCharacter的单个字符串(在NSText.h中定义为0x08),对于Forward Delete键,请使用NSDeleteCharacter(在NSText中定义)。 h为0x7F)。
我不确定“从类引用中使用带有...”的单个字符串。
//按预期工作
NSString *s = [NSString stringWithFormat:@"%c",NSDeleteCharacter];
[myMenuItem setKeyEquivalentModifierMask:NSCommandKeyMask];
[myMenuItem setKeyEquivalent:s];
//这不能按预期工作
NSString *s = [NSString stringWithFormat:@"%c",NSF2FunctionKey];
[myMenuItem setKeyEquivalentModifierMask:NSCommandKeyMask];
[myMenuItem setKeyEquivalent:s];
答案 0 :(得分:4)
Swift 2.0的示例:
let key = String(utf16CodeUnits: [unichar(NSBackspaceCharacter)], count: 1) as String
menuItem.keyEquivalentModifierMask = Int(NSEventModifierFlags.CommandKeyMask.rawValue)
menuItem.keyEquivalent = key
答案 1 :(得分:2)
自己想出来。
unichar c = NSF2FunctionKey;
NSString *f2 = [NSString stringWithCharacters:&c length:1];
[mi setKeyEquivalent:f2];
[mi setKeyEquivalentModifierMask:NSCommandKeyMask];
答案 2 :(得分:1)
在 Swift 3:
中let f2Character: Character = Character(UnicodeScalar(NSF2FunctionKey)!)
myMenuItem.keyEquivalent: String(f2Character)
myMenuItem.keyEquivalentModifierMask = []