Mac cancelUserAttentionRequest不工作​​?

时间:2012-11-17 22:11:41

标签: objective-c macos

我似乎无法使cancelUserAttentionRequest工作。我有以下......

.mm文件

void SetNotify()
{
    this->notify = [NSApp requestUserAttention:NSCriticalRequest];
}

void RemoveNotify()
{
    if (!this->notify) {
        return;
    }

    [NSApp cancelUserAttentionRequest:this->notify];
}

protected:
    int notify;

我正在使用计时器调用SetNotify,然后另一个计时器在5秒后运行。图标弹跳很好,但它不会停止弹跳。我错过了什么吗?

1 个答案:

答案 0 :(得分:1)

删除if (!this->notify)支票。

requestUserAttention:的文档没有说明它返回的整数的性质(它可能是任何有效整数),当前实现返回0为第一个请求。如果您需要确保在SetNotify()之前调用RemoveNotify(),请使用单独的布尔标记。

(另外,您应该将返回值存储在NSInteger中,而不是int。)