2016-09-25 10 views
0

複雑なカスタムビュー内にNSTextViewオブジェクトがあります。最初のレスポンダーになるようにカスタムビューが必要です(複数の理由、たとえばフォーカスリングを適切に描画するなど)。しかし、テキストビューが最初の応答者であるかのように、NSTextViewカーソルはまだ点滅していなければなりません。NSTextViewが最初のレスポンダでない場合、カーソルが点滅しますか?

ここで私は自分のアプリケーション(Apple Mailの中に検索フィールドのスクリーンショット)で見たいものを本質的です:テキストビューは、に位置カーソルで空の領域であることを

enter image description here

注それの始まり。その他の要素は親のカスタムビューに属し、その周りにフォーカスリングがあります。カーソルが点滅しています!

+0

どのビューのKeyDownイベントを取得する必要がありますか?検索フィールドのテキストビューは、 'NSTokenField'、' NSSearchField'または 'NSTextField'の(カスタムサブクラスの)フィールドエディタのようです。 – Willeke

+0

どのビューがキーダウンイベントを取得するかはまったく気にしません。いずれの場合も正しい宛先(テキストビュー)にルーティングできます。どのタイプのビューがスクリーンショットの検索フィールドですか?私はNSTextFieldをサブクラス化しようとしましたが、より柔軟なAPIを提供するためにNSTextViewに切り替える必要がありました。 – evgeny

+0

スクリーンショットは、フィールドエディタのテキストビューを含むコントロールです。コントロールにはフォーカスがあり、テキストビューは最初のレスポンダです。 – Willeke

答えて

0

標準のコントロールを使用してその動作を実装できませんでした。私の最終的な解決策は、広いマージンを持つ別のカスタムビューに検索フィールドを置き、カスタムフォーカスリング描画を実装することです。ここで

は私の吹きさらしコントロールがどのように見えるかです:

enter image description here

関連する問題