如何禁用 NSStatusItem 的高亮模式
How to disable highlighted mode of NSStatusItem
我想在单击时设置禁用 NSStatusItem
的突出显示模式。在OS X 10.10及之后的版本中,highlightedMode
属性已被弃用,Apple建议使用button
属性。那么,setHighlightedMode:
相当于什么? Swift 或 Objective-C 都可以。
提前致谢。
获取按钮的单元格,转换为 NSButtonCell*
,并将其 highlightsBy
属性 设置为 0。当然,这涉及到单元格,这些单元格也逐渐被弃用。
在内部,-[NSStatusItem setHighlightMode:]
调用 -[NSStatusBarButton setHighlightMode:]
,后者调用 -[NSStatusBarButtonCell setHighlightMode:]
。最后根据模式用 0 或 NSContentsCellMask | NSChangeBackgroundCellMask
自身调用 -setHighlightsBy:
。不幸的是,-[NSStatusBarButton setHighlightMode:]
和 NSStatusBarButtonCell
都不是 public API,因此您最好模仿它们。
总而言之,最好继续使用 -[NSStatusItem setHighlightMode:]
并向 Apple 提交错误报告,请求 non-deprecated 方法。
我想在单击时设置禁用 NSStatusItem
的突出显示模式。在OS X 10.10及之后的版本中,highlightedMode
属性已被弃用,Apple建议使用button
属性。那么,setHighlightedMode:
相当于什么? Swift 或 Objective-C 都可以。
提前致谢。
获取按钮的单元格,转换为 NSButtonCell*
,并将其 highlightsBy
属性 设置为 0。当然,这涉及到单元格,这些单元格也逐渐被弃用。
在内部,-[NSStatusItem setHighlightMode:]
调用 -[NSStatusBarButton setHighlightMode:]
,后者调用 -[NSStatusBarButtonCell setHighlightMode:]
。最后根据模式用 0 或 NSContentsCellMask | NSChangeBackgroundCellMask
自身调用 -setHighlightsBy:
。不幸的是,-[NSStatusBarButton setHighlightMode:]
和 NSStatusBarButtonCell
都不是 public API,因此您最好模仿它们。
总而言之,最好继续使用 -[NSStatusItem setHighlightMode:]
并向 Apple 提交错误报告,请求 non-deprecated 方法。