首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >未检测到NSEvent commandKey

未检测到NSEvent commandKey
EN

Stack Overflow用户
提问于 2013-01-25 02:25:05
回答 1查看 669关注 0票数 1

我正在尝试检测是否按下了命令键,而我的一生都找不到下面的错误所在。我重写了一个视图来提供下面的代码:

代码语言:javascript
复制
- (void)flagsChanged:(NSEvent *)theEvent {

    NSLog(@"flags changed in %@", self);
    BOOL commandKeyPressed = ([theEvent modifierFlags] & NSCommandKeyMask);

    if (commandKeyPressed)
        NSLog(@"command key in %@", self);
}

每当我按下命令键时,我都会看到"flags changed“消息,但没有看到"command key in”消息。我遗漏了什么?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-01-25 03:04:57

BOOLsigned char,所以当您将int转换为BOOL时,除了低8位之外,所有的位都会被去掉。在你的例子中,非零位不在低8位。相反,你可以这样说

代码语言:javascript
复制
BOOL commandKeyPressed = ([theEvent modifierFlags] & NSCommandKeyMask) != 0;

或者只是

代码语言:javascript
复制
if ([theEvent modifierFlags] & NSCommandKeyMask)
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14508140

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档