我想在单击时将禁用突出显示模式设置为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报告,请求一个非弃用的方法。