我正在尝试模仿cmd-tab键盘快捷键的功能,用户可以在应用程序之间切换某个键,然后当它们释放命令时会发生某些事情.
我现在正在使用此代码,但它只能检测keydown.我需要这个才能解决问题
- (void)flagsChanged:(NSEvent *)theEvent {
if ([theEvent modifierFlags] & NSCommandKeyMask) {
NSLog(@"Do my stuff here");
}
}
Run Code Online (Sandbox Code Playgroud)
谢谢
根据文件:
通知接收器用户已按下或释放修改键(Shift,Control等).
你需要做的是当你得到命令键关闭的事件时,你需要在某个地方设置一个标志,并在随后的调用中检查命令键是否缺失.
例如,假设您有一个名为的ivar _cmdKeyDown:
- (void)flagsChanged:(NSEvent *)theEvent
{
[super flagsChanged:theEvent];
NSUInteger f = [theEvent modifierFlags];
BOOL isDown = !!(f & NSCommandKeyMask);
if (isDown != _cmdKeyDown)
{
NSLog(@"State changed. Cmd Key is: %@", isDown ? @"Down" : @"Up");
_cmdKeyDown = isDown;
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1578 次 |
| 最近记录: |