强制NSMenu保持打开状态

问题描述 投票:-3回答:1

我有一个macOS菜单栏应用程序,当用户单击菜单栏中的图标(NSMenu)时,该应用程序显示NSStatusBarButton。我想实现一种功能,即使用户单击屏幕上的其他位置,用户也可以启用切换以强制NSMenu保持打开状态。通常,单击菜单外的某个位置会关闭NSMenu。如果用户需要引用菜单之外的内容,但仍使用菜单中的信息,则保持菜单打开可能很有用。

我确实意识到NSMenu对于像我这样的交互式应用程序不是一个很好的选择,但是目前不选择退出NSMenu。 (请不要建议切换到NSPopover或定位的窗口)

简而言之,我正在寻找一种骇人听闻的方法来强制NSMenu保持打开状态,直到我手动允许它关闭为止。如果那是唯一的办法,那么我可以接受。并且在NSMenu打开时,用户应该能够与其他应用程序/窗口进行交互。

答案应该在Swift中,而不是像App Store上的应用那样使用私有API。并且当它被迫保持打开状态时,应该可以与NSMenu进行交互。

swift macos cocoa menubar nsmenu
1个回答
0
投票

是否可以在这里使用NSMenuDelegate来处理NSMenu的幕后操作?

https://developer.apple.com/documentation/appkit/nsmenudelegate

从上面苹果提供的链接中获取资源,您应该能够设置一个函数来跟踪它是否处于打开状态,而在条件语句中选择了该选项,它将被迫保持打开状态!

© www.soinside.com 2019 - 2024. All rights reserved.