【问题标题】:How to disable highlighted mode of NSStatusItem如何禁用 NSStatusItem 的突出显示模式
【发布时间】:2016-01-09 02:52:18
【问题描述】:

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

提前致谢。

【问题讨论】:

    标签: objective-c swift macos cocoa nsstatusitem


    【解决方案1】:

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

    在内部,-[NSStatusItem setHighlightMode:] 调用 -[NSStatusBarButton setHighlightMode:],后者调用 -[NSStatusBarButtonCell setHighlightMode:]。最后使用 0 或 NSContentsCellMask | NSChangeBackgroundCellMask 对自身调用 -setHighlightsBy:,具体取决于模式。不幸的是,-[NSStatusBarButton setHighlightMode:]NSStatusBarButtonCell 都不是公共 API,所以你能做的最好的就是模拟它们。

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-10-16
      • 2015-07-11
      • 2014-12-17
      • 1970-01-01
      相关资源
      最近更新 更多