1

クリックスルーを有効にする適切な方法は、NSView で acceptFirstMouse をオーバーライドして YES を返すことです。(クリックスルーとは、ウィンドウがフォーカスされていない場合でも、コントロールをクリックして使用できることを意味します。たとえば、Finder ツールバー ボタンや信号ウィンドウ コントロールはこれを使用します。)

私の問題は、私のアプリケーションが Cocoa ではなく GTK に基づいていることです。内部では、GTK はいくつかの Carbon と Cocoa を使用しており、必要に応じて NSView へのポインターを取得できますが、GTK ソースを編集せずに別の NSView サブクラスを使用するウィジェットを取得することはできません。クリックスルーを達成する他の方法は何ですか?

(そして、可能であれば、「ホバースルー」 - クリックスルー コントロールにもマウス オーバー イベントを設定したいので、それらを強調表示して、クリック可能であることをユーザーに伝えます。)

kEventWindowGetClickActivation を使用して Carbon の InstallWindowEventHandler を呼び出すことはできますが、それを使用する方法と、それが機能するかどうかはわかりません (Carbon は非推奨であり、最新の Mac では動作しない可能性があることを読みました)。または、これを可能にする低レベルのメカニズムが必要です (Cocoa メカニズムを何らかの形で実装する必要があります)。何か案は?

4

0 に答える 0