我试图模仿 cmd-tab 键盘快捷键的功能,用户可以在应用程序之间切换点击某个键,然后当他们释放命令时会发生一些事情。

我现在正在使用此代码,但它只能检测按键按下。我需要这个来启动 key

- (void)flagsChanged:(NSEvent *)theEvent {

if ([theEvent modifierFlags] & NSCommandKeyMask) {
    NSLog(@"Do my stuff here");
}
}

谢谢

最佳答案

根据文档:



在这里你需要做的是,当你得到命令键按下的事件时,你需要在某处设置一个标志,并在随后的调用中检查是否没有命令键按下。

例如,假设您有一个名为 _cmdKeyDown 的 ivar:

- (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;
    }
}

关于objective-c - Command-Key-Up cocoa ,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/17000983/

10-09 08:53