8

NSTextFieldユーザーが入力すると、その下に「推奨リスト」が動的に表示される最も簡単な方法は何ですか? ある種のメニューを持つ Safari のアドレス バーと同じように (Safari のアドレス バーの提案は、丸みを帯びた角、青のグラデーションの選択、および背景のぼかしがあるため、メニューであると確信しています)。

NSTextViewのオートコンプリート機能を使用してみましたが、不十分であることがわかりました。

  • テキスト フィールド全体ではなく、単語を補完しようとします。つまり、オートコンプリートの候補を選択すると、現在の単語のみが置き換えられます。
  • オートコンプリート リストを前方に微調整し、テキスト フィールドとの位置合わせを維持するのではなく、挿入ポイントと位置合わせします。

サンプルのオートコンプリート

上のサンプル スクリーンショットでは、オートコンプリートの提案を選択するたびに、テキスト フィールドKがリスト内の提案された項目にのみ置き換えられ、Abadi Abadi Kurniawan.

これらは私が達成したいものです:

  • 提案が選択されるたびに、テキスト フィールド全体が提案に置き換えられます。
  • 候補リストをテキスト フィールドの左側に揃えます。

注: これは、テキスト フィールドの後ろに進行状況インジケーターを追加することに関する質問ではありません

4

2 に答える 2

3

これはあなたの答えの半分にしか対応していませんがNSTextView、メソッドをサブクラス化して実装- (NSRange)rangeForUserCompletionし、テキスト フィールドの文字列全体の範囲を返す必要があると思います。これにより、最後に入力された単語をオートコンプリートするだけではなくなります。

カスタム メニューが必要な場合は、おそらく-controlTextDidChange:メソッドを実装し、必要に応じてテーブルを含むカスタム ビューを表示することによって、自分でそれを行う必要があります。

于 2013-09-30T03:45:51.450 に答える