4

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

我已经尝试过覆盖视图并自己绘制它,drawRect但如果有更好的方法可以做到这一点,我很乐意听到。谢谢!

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

4

2 回答 2

2

这在带有 Xcode 10 的 macOS 10.13.6 中发挥了神奇的作用。

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

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

于 2018-09-26T17:13:04.160 回答
1

利用:

[[statusItem button] highlight:true];

事实证明setHighlighted:highlight不要做同样的事情:
NSStatusBarButton 保持突出显示

于 2015-01-02T12:42:20.810 回答