この質問は簡単に思えますが、考えられることはすべて試し、何時間もグーグル検索しました。
基本的にAppleのSearchFieldサンプルコードをコピーして、オートコンプリートを行うNSSearchFieldがあります。ユーザーがテキスト入力を完了するまで検索を実行したくないため、IB で「検索文字列全体を送信」をオフにしました。
ユーザーがフィールドに入力し、Enter キーを押して、現在のオートコンプリートを受け入れるように指定すると、NSSearchField のアクションが起動します。代わりに、オートコンプリートを埋めるだけのように見えます。その後、ユーザーはアクションを実行するためにもう一度 Enter キーを押す必要があります。基本的に、Safari で URL の入力を開始すると、オートコンプリートが行われ、Enter キーを押すとページの読み込みが開始されます (アクションが開始されます)。ページの読み込みを開始するためにもう一度 Enter キーを押す必要はありません。
私が成功せずに試したこと:
- control:textView:commandSelector:、insertNewline: を探しています。オートコンプリートを終了するためにエンターを押しているときに起動されません
- controlTextDidEndEditing: をオーバーライドしています。同上
何か案は?ありがとう!