自 OS X 10.10 以来,NSStatusItem 的大部分内容已被弃用,取而代之的是属性,它由NSStatusBarButton组成。它应该像普通按钮一样工作,但不幸的是,NSStatusButton中的cell
和setCell
方法也已被弃用。因此,我正在努力找到一种方法在其单击后保持按钮高亮(通常情况下,鼠标按下时按钮会突出显示,鼠标松开时则取消突出显示。我想在鼠标松开后将其保持突出显示)。
调用[NSStatusButton setHighlighted:]
在其动作中不起作用,因为它似乎会在鼠标松开后取消突出显示。另一方面,在下一个循环中使用延迟调用它,即[self performSelector: withDelay:]
,会导致突出显示以一种相当不美观的方式闪烁。它可以工作,但看起来不好。
将按钮类型设置为NSToggleButton
会完全移除突出显示,并突出显示模板图像,这很奇怪。
这些是我能想到的唯一方法。有没有办法覆盖此NSButtonCell mouseUp行为?
NSStatusItem
已经被弃用了? - JamesWebbTelescopeAlien