所以我有一个菜单栏应用程序,它在自定义视图中有一个滑块:我希望能够在拖动时按下选项键以使滑块对齐到增量。
现在,一切正常……除了我找不到一种方法来通知我的菜单应用程序正在按下选项键。这是我尝试过的:
NSEvent.addGlobalMonitorForEvents
NSEvent.addLocalMonitorForEvents
NSApplication.shared.currentEvent
flagsChanged(with event: NSEvent)
viewController
以acceptFirstResponder
,以及辞职视图的第一个响应者。此外,我已经对视图进行了子类化并被覆盖flagsChanged
,但这并没有奏效。我试过创建一个菜单项,它有一个像“s”或“p”这样的键来触发一个动作。但是当“动作”被触发时,菜单栏会隐藏......
所以我试图找到如何在按下选项键时收到通知。这可能吗?如果您有任何问题,我可以澄清。
在自定义滑块视图的mouseDragged
方法中,您只需检查 NSEvent 参数modifierFlags
以查看它是否包含选项键。
——
由于可以将滑块解释为实际的 NSSlider,如果是这种情况,那么滑块的控件实际上是使用 NSSliderCell 实现的,并且鼠标跟踪从视图传递到 mouseDown 中的单元格,因此 NSSlider 的 mouseDragged 不会不会被调用,而是您必须在单元格的trackMouse:inRect:...
方法中工作。但是,如果您使用的是 NSSlider,那么您可能只想使用altIncrementValue
.
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句