我试图在鼠标按下按钮时显示弹出菜单。该按钮应在鼠标按下时显示为按下,并且在鼠标按下时“未按下”,无论选择了任何菜单项。类似于用于添加应用程序的 Expose/Space Preference 面板“+”按钮。
到目前为止,我尝试了 3 种方法:
单击按钮时发送操作。但是这里弹出菜单出现在鼠标上而不是鼠标下
子类 NSButton 并覆盖 mouseDown:。弹出菜单出现在鼠标按下时,我可以选择任何菜单项。但是当弹出菜单消失时,按钮似乎被按下了。因此,我需要再次单击以“取消按下”按钮,然后才能再次获得相同的操作。
NSEvent addLocalMonitorForEventsMatchingMask。与 2 类似的行为。
有什么建议吗?我猜方法 2 或 3 是正确的方法,只需要“取消按下”鼠标上的按钮。