8

NSMenuItem クラス リファレンスから

メニュー項目に相当するキーとして Backspace キーを指定する場合は、NSBackspaceCharacter (NSText.h で 0x08 として定義) で単一の文字列を使用し、Forward Delete キーには NSDeleteCharacter (NSText.h で 0x7F として定義) を使用します。 )。

クラス ref からの「単一の文字列を使用して...」を理解できません。

// これは期待どおりに動作します

NSString *s = [NSString stringWithFormat:@"%c",NSDeleteCharacter];

    [myMenuItem setKeyEquivalentModifierMask:NSCommandKeyMask];

    [myMenuItem setKeyEquivalent:s];

ここに画像の説明を入力

// これは期待どおりに動作しません

NSString *s = [NSString stringWithFormat:@"%c",NSF2FunctionKey];

    [myMenuItem setKeyEquivalentModifierMask:NSCommandKeyMask];

    [myMenuItem setKeyEquivalent:s];

ここに画像の説明を入力

4

3 に答える 3

4

Swift 3、4、および 5 では:

let f2Character: Character = Character(UnicodeScalar(NSF2FunctionKey)!)
myMenuItem.keyEquivalent = String(f2Character)
myMenuItem.keyEquivalentModifierMask = []
于 2016-10-07T14:25:06.370 に答える