8

NSStatusItem.popUpMenu已在 macOS 10.14 中弃用,但我找不到一个不错的选择。

let m = statusItem.menu!
statusItem.popUpMenu(m) // deprecated

我尝试使用菜单和按钮直接弹出,但位置不正确。

let m1 = m.items.first!
m.popUp(positioning: m1, at: .zero, in: statusItem.button!)
4

1 回答 1

11

Xcode 建议使用menuproperty 而不是popupMenu. 但是一旦你设置了menu属性,每次点击该项目只会显示菜单。

相反,如果您想控制何时显示菜单,例如仅响应右键单击,那么手动触发菜单的一种简单方法是performClickNSStatusBarButton您的处理程序中调用。

statusItem.menu = myMenu
statusItem.button?.performClick(nil)
statusItem.menu = nil

如果您想继续自己处理点击,则必须设置menu回零。

于 2019-08-22T15:43:04.810 回答