gpt4 book ai didi

cocoa - Cocoa 中是否有用于 Windows 中同步 TrackPopupMenu 的等效技术?

转载 作者:行者123 更新时间:2023-12-03 17:37:27 24 4
gpt4 key购买 nike

为了响应 rightMouse 事件,我想调用一个显示上下文菜单、运行它并响应所选菜单项的函数。在 Windows 中,我可以使用带有 TPM_RETURNCMD 标志的 TrackPopupMenu。

在 Cocoa 中实现这一点的最简单方法是什么?看来 NSMenu:popUpContextMenu 想要将事件发布到指定的 NSView。我必须创建一个虚拟 View 并在返回之前等待事件吗?如果是这样,鉴于我没有返回到我的 main ,我该如何“等待”或刷新事件?

最佳答案

在 Cocoa 中执行此操作的“正确”方法是让菜单项的目标和操作执行所需的方法。但是,如果您必须在初始调用中执行此操作,则可以使用 [NSView nextEventMatchingMask:] 不断获取您感兴趣的新事件、处理它们并循环。这是一个只等待鼠标右键被释放的示例。您可能想要使用更复杂的掩码参数,并不断调用 [NSView nextEventMatchingMask:] 直到获得您想要的结果。

NSEvent *localEvent = [[self window] nextEventMatchingMask: NSRightMouseUpMask];

我认为您会找到“正确”的方式来轻松得多。

关于cocoa - Cocoa 中是否有用于 Windows 中同步 TrackPopupMenu 的等效技术?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/227935/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com