【发布时间】:2019-04-02 23:11:39
【问题描述】:
我有一个 NSPopover,我已经设置了 contentViewController 并使用它来显示一些自定义 UI。当用户单击 Mac 顶部状态栏中的状态项时,弹出框设置为打开状态。我目前面临的问题是,当我打开弹出框时,它总是需要单击窗口上的任意位置,然后弹出框上的按钮才会开始响应点击。我的按钮的实现方式是它们是 NSView 子类,我在其中覆盖了 override func mouseDown (with event: NSEvent) 之类的方法。这是我用来打开弹出框的代码:
guard let button = statusItem.button else { return }
popoverView.show(relativeTo: button.bounds, of: button, preferredEdge: NSRectEdge.minY)
有谁知道我可以做些什么来确保弹出窗口在打开时立即响应鼠标事件?
【问题讨论】:
-
你试过
window.makeKey() -
做到了!谢谢@LeoDabus
-
我的应用只有popover,如何获取window?
标签: swift macos mouseevent popover nspopover