我想在单击时将禁用突出显示模式设置为NSStatusItem。在OSX10.10及更高版本中,highlightedMode属性已被弃用,苹果建议使用button属性。那么,什么等价于setHighlightedMode:?斯威夫特或客观C是可以的。
提前谢谢。

最佳答案

获取按钮的单元格,转换为NSButtonCell*,并将其highlightsBy属性设置为0。当然,这涉及到细胞,细胞也逐渐被淘汰。
在内部,-[NSStatusItem setHighlightMode:]调用-[NSStatusBarButton setHighlightMode:],它调用-[NSStatusBarButtonCell setHighlightMode:]。最后用0或-setHighlightsBy:调用自身的NSContentsCellMask | NSChangeBackgroundCellMask,具体取决于模式。不幸的是,-[NSStatusBarButton setHighlightMode:]NSStatusBarButtonCell都不是公共API,所以最好的方法就是模拟它们。
总之,最好还是继续使用-[NSStatusItem setHighlightMode:]并向苹果提交一个bug报告,请求一个非弃用的方法。

10-02 12:35