【问题标题】:touchesBegan not called in NSScrollView subclass until the first mouse/trackpad click on the view在第一次鼠标/触控板单击视图之前,不会在 NSScrollView 子类中调用 touchesBegan
【发布时间】:2018-11-12 09:50:30
【问题描述】:
我将一个 NSScrollView 子类化以使用 touchesBegan/Moved/Ended 监视 2 指平移。只要我在应用程序启动后单击一次视图,它就可以工作。然后它将一直有效,直到我下次重新启动应用程序。
我想我在这里遗漏了一些非常明显的东西。也许是一个允许它立即接受触摸的 NSScrollView/NSView 属性。有人可以帮忙吗?
顺便说一句,当我添加一个 NSTableView 时,NSScrollView 是在 Storyboard 中自动创建的。
【问题讨论】:
标签:
macos
gesture
nsscrollview
nsevent
【解决方案1】:
找到了解决办法。
这实际上是一个菜单栏应用程序,因此视图控制器位于 NSPopover 内。在弹出窗口中显示应用程序不会使该应用程序成为激活应用程序。在它可以响应触摸之前,我必须使用以下行使其处于活动状态。
NSApplication.shared.activate(ignoringOtherApps: true)