我在这里遇到了一个非常奇怪的 NSMenu 问题。
我使用的大约一半的 NSMenuItems 通过 NSMenuItem 上的 setView: 方法对它们有自定义视图。在这个自定义视图中,我实现了 mouseUp: 来捕捉用户单击菜单项的时间,这在我第一次打开菜单时非常有效。
但是第二次,如果我在单击时保持鼠标稳定,则不会在任何这些菜单项上调用 mouseUp。但是,如果我向下单击,然后稍微移动光标,然后释放 mouseUp 就会被调用。所以由于某种原因,有些东西正在拦截这些事件,但只有第二次出现菜单时,如果光标在 mouseDown 事件之后移动,它就会通过。(由于某种原因,mouseDown 永远不会在菜单的第一次或第二次出现时被调用)。
有人对这里可能发生的事情有任何线索吗?是什么拦截了我的鼠标事件,为什么它们会在菜单第一次出现时传递到我的自定义视图,但不是在第二次出现?