Eik*_*chu 14 cocoa key hotkeys objective-c menuitem
我想用[menuitem setKeyEquivalent:(NSString*)s]设置menuitem的等效键,如果我有多个修饰符,我该怎么做?
我试过了:
unichar shift = NSShiftKeyMask, cmd = NSCommandKeyMask;
NSMutableString *keyequiv = [[NSMutableString alloc] init];
[keyequiv appendString:[NSString stringWithCharacter:&shift, 1]];
[keyequiv appendString:[NSString stringWithCharacter:&cmd, 1]];
[keyequiv appendString:@"x"];
[menuItem setKeyEquivalent:keyequivalent];
Run Code Online (Sandbox Code Playgroud)
但那不起作用.
Jos*_*ell 24
修饰键关键掩码就是:掩码,而不是字符.您不能将它们插入到密钥等效字符串中.要应用它们,请使用setKeyEquivalentModifierMask:
[menuItem setKeyEquivalentModifierMask: NSShiftKeyMask | NSCommandKeyMask];
[menuItem setKeyEquivalent:@"x"];
Run Code Online (Sandbox Code Playgroud)
与任何其他掩码一样,使用按位OR运算符|来组合.有关详细信息,请参阅"设置菜单项的键等效".
ugh*_*fhw 11
该setKeyEquivalent:方法用于指定触发命令的字符,但不指定修饰符.它将通过检查您传递的字符来设置默认修饰符.如果你传递一个小写字符,它将只使用command.如果传递大写字符,则使用shift+ command.因此,您只需要为shift+ command+ 执行此操作x:
[menuItem setKeyEquivalent:@"X"];
Run Code Online (Sandbox Code Playgroud)
如果你想使用其他的修饰,你再调用setKeyEquivalentModifierMask:与适当的常数,从选择NSShiftKeyMask,NSAlternateKeyMask(选件),NSCommandKeyMask和NSControlKeyMask.
| 归档时间: |
|
| 查看次数: |
8732 次 |
| 最近记录: |