Macos 在不覆盖NSView acceptsFirstMouse的情况下启用单击浏览

Macos 在不覆盖NSView acceptsFirstMouse的情况下启用单击浏览,macos,gtk,macos-carbon,Macos,Gtk,Macos Carbon,启用单击方式的正确方法是覆盖NSView上的acceptsFirstMouse以返回YES。单击通过意味着您可以单击并使用控件,即使其窗口未聚焦。例如,“查找器”工具栏按钮和“红绿灯”窗口控件使用此选项 我的问题是我的应用程序不是基于Cocoa,而是基于GTK。在引擎盖下,GTK使用了一些碳和可可,如果我想的话,我可以得到一个指向NSView的指针——但是如果不编辑GTK源代码,我无法让小部件使用不同的NSView子类。还有什么其他方法可以实现点击 而且,如果可能的话,将鼠标悬停在鼠标上——我也

启用单击方式的正确方法是覆盖NSView上的acceptsFirstMouse以返回YES。单击通过意味着您可以单击并使用控件,即使其窗口未聚焦。例如,“查找器”工具栏按钮和“红绿灯”窗口控件使用此选项

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

而且,如果可能的话,将鼠标悬停在鼠标上——我也希望鼠标悬停在点击控件上的事件上,这样我就可以突出显示它们,告诉用户它们是可点击的

我可以用kEventWindowGetClickActivation调用Carbon的InstallWindowEventHandler,但我不确定如何使用它,如果它能起作用,我听说Carbon已被弃用,可能不再适用于现代Mac。或者,必须有一个低级别的机制来实现这一点——可可机制必须以某种方式实施。有什么想法吗