在不覆盖NSView acceptedFirstMouse的情况下启用点击

时间:2013-01-05 13:42:51

标签: macos gtk macos-carbon

启用click-though的正确方法是覆盖NSView上的acceptsFirstMouse以返回YES。 (点击表示即使窗口没有聚焦,也可以点击并使用控件。例如,Finder工具栏按钮和交通灯窗口控件使用它。)

我的问题是我的应用程序不是基于Cocoa,而是基于GTK。在引擎盖下,GTK使用了一些Carbon和Cocoa,如果我想要的话,我可以得到一个指向NSView的指针 - 但是我不能让小部件在不编辑GTK源的情况下使用不同的NSView子类。有什么其他方法可以实现点击?

(并且,如果可能的话,“悬停” - 我也希望在点击控件上有鼠标悬停事件,所以我可以突出显示它们,告诉用户它们是可点击的。)< / p>

我可以使用kEventWindowGetClickActivation调用Carbon的InstallWindowEventHandler,但我不确定如何使用它,如果它能够工作(我读过Carbon已被弃用,可能不再适用于现代Mac)。或者,必须有一个低级机制来启用它(必须以某种方式实现Cocoa机制)。有什么想法吗?

0 个答案:

没有答案