vci*_*lli 8 macos xcode nsmenuitem
来自 NSMenuItem 类参考
如果要将 Backspace 键指定为菜单项的等效键,请使用带有 NSBackspaceCharacter 的单个字符串(在 NSText.h 中定义为 0x08),对于 Forward Delete 键,使用 NSDeleteCharacter(在 NSText.h 中定义为 0x7F )。
不确定我是否理解类引用中的“使用单个字符串...”。
// 这按预期工作
NSString *s = [NSString stringWithFormat:@"%c",NSDeleteCharacter];
[myMenuItem setKeyEquivalentModifierMask:NSCommandKeyMask];
[myMenuItem setKeyEquivalent:s];
Run Code Online (Sandbox Code Playgroud)

// 这不像预期的那样工作
NSString *s = [NSString stringWithFormat:@"%c",NSF2FunctionKey];
[myMenuItem setKeyEquivalentModifierMask:NSCommandKeyMask];
[myMenuItem setKeyEquivalent:s];
Run Code Online (Sandbox Code Playgroud)

在Swift 3、4 和 5 中:
let f2Character: Character = Character(UnicodeScalar(NSF2FunctionKey)!)
myMenuItem.keyEquivalent = String(f2Character)
myMenuItem.keyEquivalentModifierMask = []
Run Code Online (Sandbox Code Playgroud)
我自己想出来的。
unichar c = NSF2FunctionKey;
NSString *f2 = [NSString stringWithCharacters:&c length:1];
[mi setKeyEquivalent:f2];
[mi setKeyEquivalentModifierMask:NSCommandKeyMask];
Run Code Online (Sandbox Code Playgroud)

| 归档时间: |
|
| 查看次数: |
2330 次 |
| 最近记录: |