gpt4 book ai didi

objective-c - 如何检测鼠标是否位于菜单栏上?

转载 作者:行者123 更新时间:2023-12-03 17:57:36 26 4
gpt4 key购买 nike

我正在调用一些方法,需要在继续之前检测鼠标是否位于(主)菜单栏上。如何定义这样的方法 - (BOOL)isMouseOverMenu

我想确保鼠标实际上位于菜单栏中,因此,当应用程序处于全屏状态、隐藏菜单时,或者当鼠标位于菜单栏的相同坐标时,它应该返回 false第二台显示器没有菜单栏。如果它位于菜单栏中的任何其他项目上,它也应该返回 true,但不一定是在弹出菜单中。

注意:当此窗口触发时,我的窗口并不总是关键窗口。

最佳答案

根据NSMenu文档中,NSMenuDidBeginTrackingNotification 在菜单跟踪开始时发布。

为此通知添加一个观察者,只要鼠标悬停在菜单上,您就会收到通知。

更新:

我认为这是不可能的。 NSMenuDidBeginTrackingNotification 仅在用户单击菜单时发布,而不是在鼠标悬停在菜单上时发布。

NSMenu 不是从 NSResponder 派生的,因此无法通过重写其中一种鼠标方法来检测它。

我认为这是一个错误,因为苹果文档中将鼠标跟踪定义为光标位于没有按下任何按钮的矩形区域上。如果没有其他解决方案,我会考虑提交错误报告。

关于objective-c - 如何检测鼠标是否位于菜单栏上?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11065401/

26 4 0