如何处理 Cocoa 菜单栏应用程序中的修饰键

乔什格兰特

所以我有一个菜单栏应用程序,它在自定义视图中有一个滑块:我希望能够在拖动时按下选项键以使滑块对齐到增量。

现在,一切正常……除了我找不到一种方法来通知我的菜单应用程序正在按下选项键。这是我尝试过的:

  1. NSEvent.addGlobalMonitorForEvents

    • “请注意,不会为发送到您自己的应用程序的事件调用您的处理程序。”
  2. NSEvent.addLocalMonitorForEvents

    • “您的处理程序将不会被嵌套的事件跟踪循环所消耗的事件调用,例如控件跟踪、菜单跟踪或窗口拖动”
  3. NSApplication.shared.currentEvent

    • 这不起作用,因为应用程序不处理 flagsChanged 事件,因此该值被设置为另一个值(按下鼠标按钮)。
  4. flagsChanged(with event: NSEvent)

    • 这不会被调用。我已经设置了viewControlleracceptFirstResponder,以及辞职视图的第一个响应者。此外,我已经对视图进行了子类化并被覆盖flagsChanged,但这并没有奏效。
  5. 我试过创建一个菜单项,它有一个像“s”或“p”这样的键来触发一个动作。但是当“动作”被触发时,菜单栏会隐藏......

所以我试图找到如何在按下选项键时收到通知。这可能吗?如果您有任何问题,我可以澄清。

赛斯

在自定义滑块视图的mouseDragged方法中,您只需检查 NSEvent 参数modifierFlags以查看它是否包含选项键。

——

由于可以将滑块解释为实际的 NSSlider,如果是这种情况,那么滑块的控件实际上是使用 NSSliderCell 实现的,并且鼠标跟踪从视图传递到 mouseDown 中的单元格,因此 NSSlider 的 mouseDragged 不会不会被调用,而是您必须在单元格的trackMouse:inRect:...方法中工作。但是,如果您使用的是 NSSlider,那么您可能只想使用altIncrementValue.

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何在Cocoa应用程序中隐藏菜单栏?

来自分类Dev

启动Cocoa应用程序时如何确定按下的修饰键?

来自分类Dev

即使退出应用程序,如何在菜单栏中显示应用程序图标

来自分类Dev

我的应用程序中的菜单栏在GNOME Shell中位于何处?

来自分类Dev

我的应用程序中的菜单栏在GNOME Shell中位于何处?

来自分类Dev

如何在菜单栏中的应用程序中放置徽章图标?

来自分类Dev

如何创建出现在顶部菜单栏中的桌面应用程序?

来自分类Dev

如何在快捷菜单栏应用程序中运行终端命令?

来自分类Dev

如何使用Pyinstaller打包的Kivy Python应用程序在OSX菜单栏中创建菜单项?

来自分类Dev

如何使用Pyinstaller打包的Kivy Python应用程序在OSX菜单栏中创建菜单项?

来自分类Dev

如何处理Enter键

来自分类Dev

如何处理Django应用程序CI中的迁移

来自分类Dev

如何处理Phonegap + JQM应用程序中的链接?

来自分类Dev

如何处理Android应用程序中的标记双击

来自分类Dev

如何处理 Azure 逻辑应用程序中的异常

来自分类Dev

在Lua中,如何处理?

来自分类Dev

如何处理 Windows 任务栏中需要我注意的应用程序?

来自分类Dev

Clojure跷跷板应用程序:如何从“主要”更改菜单栏标题

来自分类Dev

OS X菜单栏应用程序:如何将窗口置于最前面

来自分类Dev

如何隐藏可可应用程序中的菜单栏?

来自分类Dev

如何在osx菜单栏上更改Java应用程序的标题?

来自分类Dev

如何处理XSLT中的处理指令

来自分类Dev

如何处理WPF应用程序中未处理的应用程序级异常?

来自分类Dev

如何在Cocoa Touch应用程序中实施“首次用户注册”工作流程?

来自分类Dev

应用程序如何在Cocoa中向自身发送(基本)Apple Event?

来自分类Dev

停用应用程序时如何处理后台线程

来自分类Dev

opa如何处理桌面和移动应用程序

来自分类Dev

该应用程序应如何处理延迟的SKPaymentTransaction?

来自分类Dev

商业应用程序如何处理更新?

Related 相关文章

  1. 1

    如何在Cocoa应用程序中隐藏菜单栏?

  2. 2

    启动Cocoa应用程序时如何确定按下的修饰键?

  3. 3

    即使退出应用程序,如何在菜单栏中显示应用程序图标

  4. 4

    我的应用程序中的菜单栏在GNOME Shell中位于何处?

  5. 5

    我的应用程序中的菜单栏在GNOME Shell中位于何处?

  6. 6

    如何在菜单栏中的应用程序中放置徽章图标?

  7. 7

    如何创建出现在顶部菜单栏中的桌面应用程序?

  8. 8

    如何在快捷菜单栏应用程序中运行终端命令?

  9. 9

    如何使用Pyinstaller打包的Kivy Python应用程序在OSX菜单栏中创建菜单项?

  10. 10

    如何使用Pyinstaller打包的Kivy Python应用程序在OSX菜单栏中创建菜单项?

  11. 11

    如何处理Enter键

  12. 12

    如何处理Django应用程序CI中的迁移

  13. 13

    如何处理Phonegap + JQM应用程序中的链接?

  14. 14

    如何处理Android应用程序中的标记双击

  15. 15

    如何处理 Azure 逻辑应用程序中的异常

  16. 16

    在Lua中,如何处理?

  17. 17

    如何处理 Windows 任务栏中需要我注意的应用程序?

  18. 18

    Clojure跷跷板应用程序:如何从“主要”更改菜单栏标题

  19. 19

    OS X菜单栏应用程序:如何将窗口置于最前面

  20. 20

    如何隐藏可可应用程序中的菜单栏?

  21. 21

    如何在osx菜单栏上更改Java应用程序的标题?

  22. 22

    如何处理XSLT中的处理指令

  23. 23

    如何处理WPF应用程序中未处理的应用程序级异常?

  24. 24

    如何在Cocoa Touch应用程序中实施“首次用户注册”工作流程?

  25. 25

    应用程序如何在Cocoa中向自身发送(基本)Apple Event?

  26. 26

    停用应用程序时如何处理后台线程

  27. 27

    opa如何处理桌面和移动应用程序

  28. 28

    该应用程序应如何处理延迟的SKPaymentTransaction?

  29. 29

    商业应用程序如何处理更新?

热门标签

归档