如何禁用NSStatusItem的突出显示模式

时间:2016-01-09 02:52:19

标签: objective-c swift macos cocoa nsstatusitem

我想在点击时设置NSStatusItem的禁用突出显示模式。在OS X 10.10及更高版本中,highlightedMode属性已被弃用,Apple建议使用button属性。那么,相当于setHighlightedMode:的是什么? Swift或Objective-C没问题。

提前致谢。

1 个答案:

答案 0 :(得分:0)

获取按钮的单元格,转换为NSButtonCell*,并将其highlightsBy属性设置为0.当然,这涉及单元格,这些单元格也逐渐被弃用。

在内部,-[NSStatusItem setHighlightMode:]调用-[NSStatusBarButton setHighlightMode:],调用-[NSStatusBarButtonCell setHighlightMode:]。最后一次调用-setHighlightsBy:自身为0或NSContentsCellMask | NSChangeBackgroundCellMask,具体取决于模式。遗憾的是,-[NSStatusBarButton setHighlightMode:]NSStatusBarButtonCell都不是公共API,因此您可以做的最好的就是模仿它们。

总而言之,最好继续使用-[NSStatusItem setHighlightMode:]并向Apple提交错误报告,要求采用不推荐的方法。