使OSX应用程序在未聚焦时响应第一次鼠标单击

use*_*737 12 macos cocoa click-through

正常的OSX应用程序在没有聚焦时首先点击鼠标点击应用程序.然后,应用程序将处理未来的点击次数.iTunes播放/暂停按钮和Finder的行为有所不同,即使没有聚焦,第一次点击也会被激活.我正在寻找一种方法来强制现有的应用程序(远程桌面连接.app)在第一次单击时起作用,而不仅仅是焦点.

Cas*_*ser 14

检查NSView的acceptedFirstMouse,它可能正是您正在寻找的.

acceptsFirstMouse:如果接收器应该发送一个mouseDown:消息用于初始鼠标按下事件,则子类重写返回YES,否则返回NO.

  • (BOOL)acceptFirstMouse:(NSEvent*)theEvent

参数theEvent初始鼠标按下事件,必须在其窗口中的接收器上方.

讨论接收方可以无条件地返回值,也可以使用事件的位置来确定它是否需要该事件.默认实现忽略了Event并返回NO.

在子类中重写此方法以允许实例响应点击.这允许用户单击非活动窗口中的视图,只需单击一下即可激活视图,而不是先单击以使窗口处于活动状态,然后单击视图.大多数视图对象拒绝单击尝试,因此事件只会激活窗口.但是,许多控件对象(例如NSButton和NSSlider的实例)都接受它们,因此用户可以立即操作控件而无需释放鼠标按钮.


Han*_*son 1

在未聚焦时响应第一次鼠标单击称为“点击”。它的价值引起了激烈的争论,例如这里这里

  • 这是无关紧要的。当有人问你汉堡王在哪里时,你不会开始说服他们吃素。有些人习惯于“点击浏览”。例如,来自用户友好操作系统的人们。事实上,这可能(并且应该)是一个系统设置。我不知道为什么不是,可能是因为苹果的自负(他们认为他们更了解一切) (5认同)