【问题标题】:Highlight NSStatusItem when triggered programmatically以编程方式触发时突出显示 NSStatusItem
【发布时间】:2014-07-20 19:41:12
【问题描述】:

我有一个带有附加菜单的NSStatusItem,我使用全局热键触发该菜单。如果我单击菜单项,我会像往常一样获得突出显示,如果我使用热键,则不会触发突出显示。有谁知道触发高亮的方法吗?

我尝试在drawRect 中覆盖视图并自己绘制它,但如果有更好的方法,我很乐意听到。谢谢!

我不想覆盖视图的原因是我必须处理图标定位、单击以激活菜单等。

【问题讨论】:

  • [[statusItem 按钮] setHighlighted:true]?
  • 据我所知,@Luke 的comment 是正确答案。它应该作为答案添加并标记为正确:)

标签: macos nsstatusitem nsstatusbar


【解决方案1】:

这在带有 Xcode 10 的 macOS 10.13.6 中发挥了魔力。

guard let m = statusItem.menu else { return }
statusItem.button?.isHighlighted = true
statusItem.popUpMenu(m)
statusItem.button?.isHighlighted = false

请注意,当菜单关闭时,最后一行需要取消突出显示图标。

【讨论】:

    【解决方案2】:

    用途:

    [[statusItem button] highlight:true];

    事实证明 setHighlighted:highlight 不会做同样的事情:
    NSStatusBarButton keep highlighted

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-12-11
      • 2023-03-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多