我想在单击时设置禁用 NSStatusItem
的突出显示模式。在 OS X 10.10 及更高版本中,highlightedMode
属性已被弃用,Apple 建议使用 button
属性。那么,什么是 setHighlightedMode:
的等价物? Swift 或 Objective-C 都可以。
提前致谢。
最佳答案
获取按钮的单元格,转换为 NSButtonCell*
,并将其 highlightsBy
属性设置为 0。当然,这涉及到单元格,这些单元格也逐渐被弃用。
在内部,-[NSStatusItem setHighlightMode:]
调用 -[NSStatusBarButton setHighlightMode:]
,后者调用 -[NSStatusBarButtonCell setHighlightMode:]
。最后使用 0 或 NSContentsCellMask | 对自身调用
,取决于模式。不幸的是,-setHighlightsBy:
NSChangeBackgroundCellMask-[NSStatusBarButton setHighlightMode:]
和 NSStatusBarButtonCell
都不是公共(public) API,因此您最好的办法就是模拟它们。
总而言之,最好继续使用 -[NSStatusItem setHighlightMode:]
并向 Apple 提交错误报告,请求不推荐使用的方法。
关于objective-c - 如何禁用 NSStatusItem 的高亮模式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34689213/