ライブラリパネルをクリックまたはドラッグしたい場合は、ライブラリパネルに現在の設定がない場合でもインターフェイスビルダを1回クリックするだけですフォーカス。パネルの最初のクリックに応答するNSTableView
同様に動作するパネルを構築しようとしています。
ウィンドウにフォーカスがない場合でも、NSTableViewがクリックを受け入れる簡単な方法はありますか?
ありがとうございました。
ライブラリパネルをクリックまたはドラッグしたい場合は、ライブラリパネルに現在の設定がない場合でもインターフェイスビルダを1回クリックするだけですフォーカス。パネルの最初のクリックに応答するNSTableView
同様に動作するパネルを構築しようとしています。
ウィンドウにフォーカスがない場合でも、NSTableViewがクリックを受け入れる簡単な方法はありますか?
ありがとうございました。
私は答えを見つけました。内部awakeFromNibから私はこれを呼び出します: [self setBecomesKeyOnlyIfNeeded:YES];
トリックをするようです。これはInterface Builderとはちょっと違いますが、Panelは実際には1回のクリックで同時にフォーカスを取得しますが、このようにすることは私が探していたものです。
あなたのビューは-acceptsFirstMouse:
をオーバーライドしてYESを返します(返されるイベントを評価するために渡されたイベントを評価する)。もちろん、それを行うにはNSTableView
をサブクラス化する必要があります。
私はそれをする必要はなく、テーブルがあるPanelの "becomeKeyOnlyIfNeeded"プロパティを設定するだけでした。しかし、お返事ありがとうございます。 – chaimp
うれしかったです。下の私の答えは、あなたがクリックと同時に焦点を当て、NSPanelsだけでなく、どんなビューでも動作します。しかし、これがあなたのニーズを満たしていれば、明らかにはるかに簡単で、現在のkeyWindowからキーボードフォーカスを盗むことはありません(必要に応じて良いか悪いか)。 –
XIBファイルまたはコードのいずれかに他の設定が必要でしたか?私はこれをNSCollectionViewで動作させようとしています。これまでのところ完全に失敗しています。 –
私はちょうどこのコメントに気付いた。あなたは "setBecomesKeyOnlyIfNeeded"を試しましたか?それは動作しませんでしたか? – chaimp