2013-09-07 8 views
5

NSTextFieldに「おすすめリスト」を動的に表示する最も簡単な方法は、ユーザーが入力するときです。 Safariのアドレスバーにはいくつかの種類のメニューがあります(私は、丸い角、青のグラデーションの選択、背景のぼかしがあるので、Safariのアドレスバーの提案はメニューだと確信しています)。NSTextFieldにSafariのアドレスバーなどの自動提案がありますか?

私はNSTextView's autocompletion facilityを使用してみましたが、それは不十分であったことがわかりました:

  • それは全体ではなく、テキストフィールドの言葉を完了しようとします - 言い換えれば、オートコンプリートの提案を選択するだけで、現在の単語に置き換えられます。
  • オートコンプリートリストを前方に移動し、テキストフィールドに揃えずに挿入ポイントに合わせます。 IテキストフィールドのみAbadi Abadi Kurniawanもたらすリストで提案されている項目とKを置き換えるオートコンプリート候補を選択するたびに上記のサンプルスクリーンショットで

Sample autocomplete

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

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

注:これはadding progress indicator behind a text fieldについての質問ではありません。

答えて

2

これはあなたの答えの半分だけを扱いますが、NSTextViewをサブクラス化して- (NSRange)rangeForUserCompletionメソッドを実装して、テキストフィールド全体の文字列の範囲を返す必要があると思います。これは、最後に入力した単語を自動補完するだけではないことを確認する必要があります。

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

関連する問題