ボタンを作成しましたが、少し問題があります。アプリを起動すると、ボタンが選択されます。この選択を無効にするにはどうすればよいですか?
例:
ボタンのフォーカス リング タイプを none に設定します。
[myButton setFocusRingType:NSFocusRingTypeNone];
このオプションは、XIB で設定することもできます。
まず、デフォルトでは、ボタンはフォーカスを取得できないことを知っておく必要があります。ユーザーは、[システム環境設定] > [キーボード] > [ショートカット] > [フル キーボード アクセス: すべてのコントロール] を選択する必要があります。それを行った場合、最初にボタンにフォーカスを持たせたいと思うかもしれません。
とにかく、これを行う適切な方法は[theWindow makeFirstResponder:nil]
、最初に表示した後に呼び出すことです。これを行うタイミングは、ウィンドウがどのように表示されるかによって異なります。コードで明示的に表示すると、その直後に呼び出しを行うことができます。NIB で Visible at Launch フラグが設定されているために表示される場合は、NIB が読み込まれた後に表示されます。等。
何かが可能であれば、何かが常にウィンドウ内の最初のレスポンダーであるべきです。通常、テキスト フィールドなどのいくつかのコントロールのみが最初のレスポンダーになることができますが、ユーザーがフル キーボード アクセスを有効にしている場合、デフォルトでボタンが選択されるのは正常です。
この特定のボタンを選択したくない場合は、ウィンドウinitialFirstResponder
を別のコントロールに設定します。
を使用しないことをお勧めし-[NSWindow makeFirstResponder:nil]
ます。ウィンドウは何も選択されていない状態で開始されますが、ユーザーがタブを押すとすぐにボタンが選択されます。ユーザーとしてウィンドウを「何も選択されていない」状態に戻す方法がないため、これは Mac アプリでは珍しいことです。