Swift OS X 10.14中不推荐使用状态项弹出菜单

Swift OS X 10.14中不推荐使用状态项弹出菜单,swift,xcode,cocoa,Swift,Xcode,Cocoa,当右键单击时,唯一可以让状态项显示菜单的方法是调用popUpMenu() 有没有办法使用不推荐的方法来实现这一点?使用 button.menu = MyObj.menu button.menu?.popUp(positioning: nil, at: NSPoint(x: 0, y: button.frame.height), in: button) 给出了类似的结果,但弹出菜单是浮动的,而不是我想要的菜单栏项的下拉菜单。与“+(无效)popUpContextMenu:(NSMenu*)菜单

当右键单击时,唯一可以让状态项显示菜单的方法是调用popUpMenu()

有没有办法使用不推荐的方法来实现这一点?使用

button.menu =  MyObj.menu
button.menu?.popUp(positioning: nil, at: NSPoint(x: 0, y: button.frame.height), in: button)

给出了类似的结果,但弹出菜单是浮动的,而不是我想要的菜单栏项的下拉菜单。

与“+(无效)popUpContextMenu:(NSMenu*)菜单withEvent:(NSEvent*)event forView:(NSView*)view;”有什么区别吗?确保您的NSStatusItem具有有效的NSStatusBarButton,并且在您可以将菜单设置为NSStatusItem之后。一旦按下StatusBar中的按钮,调用performClick方法(在内部调用不推荐的方法,但这不是您的问题),popUpContextMenu似乎不是一个可用的方法,我希望它是一个右键单击。performClick只是递归调用我实现的buttonClicked func,如果你不相信我的话,实际上不会在内部实现中显示菜单OK。料斗(自由)+AppKit.framework。您将看到它们做了什么以及遗漏了什么。popUpContextMenu是一个类方法,始终可用。我正在使用objective-c命名,所以请查找它
button.menu =  MyObj.menu
button.menu?.popUp(positioning: nil, at: NSPoint(x: 0, y: button.frame.height), in: button)