0

ここにココアの初心者がいます: そして、私は最初にすべての本当に難解なものに取り掛かっているようです. クリックするとデフォルトでコンテンツが選択され、選択色を変更できる NSTextField が必要でした。このフォーラムには、フィールド エディターの謎を解き明かすのに十分な情報がありました。NSTextField をサブクラス化し、becomeFirstResponder メソッドをオーバーライドしました。

- (BOOL) becomeFirstResponder {
    if (!super.becomeFirstResponder) return NO;
    NSTextView * fieldEditor = (NSTextView *) [self.window fieldEditor:YES forObject:self];
    [fieldEditor performSelector:@selector(selectAll:) withObject:fieldEditor afterDelay:0];
    [fieldEditor setSelectedTextAttributes:selectionColor];
    return YES; }

ここで、selectionColor は、NSBackgroundColorAttributeName にキー設定された NSColor オブジェクトを持つ 1 項目の NSDictionary です。これは、ウィンドウとパネルのテキスト フィールドでは完全に機能しますが、NSPopover のビューのフィールドではまったく機能しません。実際、テキストの選択が不可能になります。フィールドをクリックして入力することは引き続き可能ですが、カーソルをテキスト内でドラッグして選択することはできません。どうにかしてフィールド エディターの設定を誤っているとしか結論付けられません。私はそれを正しく参照していますか?

4

1 に答える 1

0

自分の質問に答える際に、stackOverflow プロトコルに従っていることを願っています。簡単に言えば、明らかに、私が投稿したコードは NSPopovers で完全に機能するということです。機能していないと思った理由として考えられるのは、selectionColor と呼んだ NSDictionary オブジェクトが正しく初期化されていなかったことです。ここでエミリー・リテラの瞬間を過ごしています:「ああ…気にしないで!」現在の唯一の問題は、これを追跡するのに途方もない時間がかかったということです。

于 2012-07-18T16:54:21.423 に答える