微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如果窗口不可见,则 NSMenu 中的视图不可点击

如何解决如果窗口不可见,则 NSMenu 中的视图不可点击

我在“应用程序是代理”-应用程序中使用 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 举报,一经查实,本站将立刻删除。