0

メニューバーコマンドで複数の NSTextViews を変更できるかどうかを誰かが知っているかどうか疑問に思っています。たとえば、ユーザーがメニュー バーから [太字] を選択すると、選択されたさまざまな NSTextView がすべてのコンテンツを更新して太字で表示します。

これが私が持っているセットアップです:

@interface MyCustomTextField : NSView <NSTextViewDelegate>{
    NSTextView *textView;
    BOOL selected;
    ...
}

したがって、基本的には独自のカスタム クラスがあり、各カスタム クラス内に NSTextView、このビューが選択されているかどうかを決定する var などがあります。

複数のフィールドを選択することはできますが、Apple のドキュメントで読んだことから、ウィンドウ内のすべての NSTextView が 1 つのフィールド エディターを共有しています。ユーザーが NSTextView を編集すると、実際にはフィールド エディターにコマンドが送信され、フィールド エディターはそれを処理して NSTextView にルーティングします。この場合、独自のカスタム フィールド エディターを作成し、代わりに、選択したすべてのカスタム テキスト クラスにコマンドをルーティングする必要がありますか?

==編集==
私の CustomTextField クラスには「selected」という名前の変数があり (上記を参照)、Shift または Apple キーを押したままにすると、複数の CustomTextField インスタンスを「選択」できます (NSTextView インスタンスの前にマスクを置きます)これは mouseDown メッセージをキャッチします)。

したがって、この選択により、複数のインスタンスの「選択された」属性が true に設定されます。ウィンドウのファーストレスポンダーに関しては、すべての NSTextView の周りに青いハローを表示するマスクに設定されます。

デフォルトの NSTextView コマンド (太字、斜体など) を受け入れるようにアプリに指示できるかどうか、カスタム フィールド エディターを指定すると、選択した CustomTextFields に適切なメッセージがすべて渡され、それが渡されるかどうか疑問に思っています。それを NSTextViews に追加します。

私の頭の中では、メッセージは次のように渡されます。

ユーザーがテキスト ツールバー コマンドを送信>カスタム フィールド エディター> MyCustomTextField > NSTextView

うまくいけば、私の説明が理にかなっているか、あるいは私は今、LaLa の世界にいるのかもしれません。

4

0 に答える 0