我在 NSDocument 应用程序中对 NSWindow 进行了子类化,以便接收 keyDown 事件。
我在我的子类中使用了以下代码......
- (void)keyDown:(NSEvent *)theEvent {
NSLog(@"keyDown!");
if ([theEvent modifierFlags] & NSAlternateKeyMask) {
NSLog(@"Alt key Down!");
}
else
[super keyDown:theEvent];
}
当按下非修饰键时我收到按键事件!
例如,当我按 alt+z(alt+非修饰键)时,我还会收到“Alt Key is Down”。
这里的问题是,我想在仅按下 alt/option 键而不与其他键组合时处理事件,并且 -keyDown: 不会被调用!我缺少什么?
谢谢...
您可以单独按下 Alt/Option 键in -flagsChanged: http://developer.apple.com/library/mac/documentation/Cocoa/Reference/ApplicationKit/Classes/NSResponder_Class/Reference/Reference.html#//apple_ref/occ/instm/NSResponder/flagsChanged:代替-keyDown:
.
-(void)flagsChanged:(NSEvent*)theEvent {
if ([theEvent modifierFlags] & NSAlternateKeyMask) {
NSLog(@"Alt key Down (again)!");
}
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)