我有NSStatusItem
一个附加菜单,我用全局热键触发。如果我单击菜单项,我会像往常一样获得突出显示,如果我使用热键,则不会触发突出显示。有谁知道触发高光的方法吗?
我已经尝试过覆盖视图并自己绘制它,drawRect
但如果有更好的方法可以做到这一点,我很乐意听到。谢谢!
我不想覆盖视图的原因是我必须处理图标定位、单击以激活菜单等。
我有NSStatusItem
一个附加菜单,我用全局热键触发。如果我单击菜单项,我会像往常一样获得突出显示,如果我使用热键,则不会触发突出显示。有谁知道触发高光的方法吗?
我已经尝试过覆盖视图并自己绘制它,drawRect
但如果有更好的方法可以做到这一点,我很乐意听到。谢谢!
我不想覆盖视图的原因是我必须处理图标定位、单击以激活菜单等。
这在带有 Xcode 10 的 macOS 10.13.6 中发挥了神奇的作用。
guard let m = statusItem.menu else { return }
statusItem.button?.isHighlighted = true
statusItem.popUpMenu(m)
statusItem.button?.isHighlighted = false
请注意,当菜单关闭时,最后一行需要取消突出显示图标。
利用:
[[statusItem button] highlight:true];
事实证明setHighlighted:
,highlight
不要做同样的事情:
NSStatusBarButton 保持突出显示