5

我想执行以下操作:
当我单击状态栏项目 ( NSStatusItem) 时,我想无限期地突出显示它(无菜单),当应用程序失去焦点时,我想停止突出显示它。

有没有办法做到这一点?找不到了,呵呵

4

2 回答 2

2

您可以使用向状态项发送drawStatusBarBackgroundInRect:withHighlight:消息的自定义视图来执行此操作。

我怀疑没有自定义视图是否有任何方法可以做到这一点,因为正如我在对该问题的评论中提到的那样,当用户没有将鼠标放在它上面时保持该项目突出显示看起来很糟糕。

于 2013-01-12T19:59:51.750 回答
2

老问题,但我认为值得添加这个替代答案。

当应用程序失去焦点时,这不会自动取消突出显示,但这允许您在不使用自定义视图的情况下突出显示(正如其他答案所要求的那样):

NSStatusItem *statusItem = [self getStatusItem];
[statusItem.button setHighlighted:YES];

您可以使用相同的方法手动取消突出显示它:

[statusItem.button setHighlighted:NO];

注意我从一个类似的问题这里得到了这个答案。

于 2015-01-01T12:19:06.370 回答