【发布时间】:2014-09-23 21:03:28
【问题描述】:
从 OS X 10.10 开始,大部分 NSStatusItem 已被弃用,取而代之的是由 NSStatusBarButton 组成的 button 属性。它应该像普通按钮一样工作,但不幸的是,NSStatusButton 中的cell 和setCell 方法也已被弃用。因此,我正在努力寻找一种方法来在单击按钮后保持按钮突出显示(通常该按钮在鼠标按下时突出显示,而在鼠标抬起时不突出显示。我想在鼠标抬起后保持突出显示)。
在其操作中调用[NSStatusButton setHighlighted:] 不起作用,因为一旦鼠标抬起,它似乎就不会突出显示自身。另一方面,使用延迟在下一个循环(即[self performSelector: withDelay:])上调用它会导致高光以一种相当难看的方式闪烁。它可以工作,但看起来不太好。
将按钮类型设置为NSToggleButton 会完全删除突出显示,而是突出显示奇怪的模板图像。
这些是我能想到的唯一方法。有没有办法覆盖这个 NSButtonCell mouseUp 行为?
【问题讨论】:
-
您从哪里得知
NSStatusItem已被弃用? -
NSStatusItem 未被弃用,它的一些方法已在 10.10 中被弃用。
标签: objective-c macos cocoa osx-yosemite nsstatusitem