问题描述
我在“应用程序是代理”-应用程序中使用 NSMenu 时遇到了非常奇怪的行为。
我有以下简单的代码来设置带有 NSMenu 的标题栏图标。该菜单包含一个带有 NSSwitch 按钮的自定义视图。
class AppDelegate: NSObject,NSApplicationDelegate {
let statusBarItem = NsstatusBar.system.statusItem(withLength: -1)
func applicationDidFinishLaunching(_ aNotification: Notification) {
let icon = NSImage(imageLiteralResourceName:"flag")
statusBarItem.image = icon
let menu: NSMenu = NSMenu()
var menuItem = NSMenuItem()
let frame = CGRect(origin: .zero,size: CGSize(width: 100,height: 20))
let viewHint = NSView(frame: frame)
let switchButton = NSSwitch(frame: frame)
viewHint.addSubview(switchButton)
menuItem.view = viewHint
menu.addItem(menuItem)
statusBarItem.menu=menu
}
只要应用程序窗口聚焦,它就可以很好地工作。
当我关闭应用程序主窗口时,标题栏仍然可见(因为它是一个代理应用程序)。现在菜单中的开关按钮不再响应,这意味着我无法打开或关闭它。如果双击它真的很快,你可以,但这不再是正常的行为,它与隐藏的窗口有某种关系。正如我所说,如果窗口可见,它就可以工作。
有什么想法吗?谢谢!
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)