2009-09-02 5 views
1

ライブラリパネルをクリックまたはドラッグしたい場合は、ライブラリパネルに現在の設定がない場合でもインターフェイスビルダを1回クリックするだけですフォーカス。パネルの最初のクリックに応答するNSTableView

同様に動作するパネルを構築しようとしています。

ウィンドウにフォーカスがない場合でも、NSTableViewがクリックを受け入れる簡単な方法はありますか?

ありがとうございました。

答えて

1

私は答えを見つけました。内部awakeFromNibから私はこれを呼び出します: [self setBecomesKeyOnlyIfNeeded:YES];

トリックをするようです。これはInterface Builderとはちょっと違いますが、Panelは実際には1回のクリックで同時にフォーカスを取得しますが、このようにすることは私が探していたものです。

+0

うれしかったです。下の私の答えは、あなたがクリックと同時に焦点を当て、NSPanelsだけでなく、どんなビューでも動作します。しかし、これがあなたのニーズを満たしていれば、明らかにはるかに簡単で、現在のkeyWindowからキーボードフォーカスを盗むことはありません(必要に応じて良いか悪いか)。 –

+0

XIBファイルまたはコードのいずれかに他の設定が必要でしたか?私はこれをNSCollectionViewで動作させようとしています。これまでのところ完全に失敗しています。 –

+0

私はちょうどこのコメントに気付いた。あなたは "setBecomesKeyOnlyIfNeeded"を試しましたか?それは動作しませんでしたか? – chaimp

1

あなたのビューは-acceptsFirstMouse:をオーバーライドしてYESを返します(返されるイベントを評価するために渡されたイベントを評価する)。もちろん、それを行うにはNSTableViewをサブクラス化する必要があります。

+0

私はそれをする必要はなく、テーブルがあるPanelの "becomeKeyOnlyIfNeeded"プロパティを設定するだけでした。しかし、お返事ありがとうございます。 – chaimp

関連する問題