8

ボタンを作成しましたが、少し問題があります。アプリを起動すると、ボタンが選択されます。この選択を無効にするにはどうすればよいですか?

例:

2 つのボタンがあるウィンドウ。 1 つ目 (左) は周囲に青い輝きがあり、2 つ目 (右) はありません。

4

3 に答える 3

7

警告: この回答は不完全です: フォーカス リングを非表示にするだけです (選択を妨げることはありません)。このソリューションにはほとんどメリットがありません。

ボタンのフォーカス リング タイプを none に設定します。

[myButton setFocusRingType:NSFocusRingTypeNone];

このオプションは、XIB で設定することもできます。

于 2011-04-26T08:08:18.803 に答える
4

まず、デフォルトでは、ボタンはフォーカスを取得できないことを知っておく必要があります。ユーザーは、[システム環境設定] > [キーボード] > [ショートカット] > [フル キーボード アクセス: すべてのコントロール] を選択する必要があります。それを行った場合、最初にボタンにフォーカスを持たせたいと思うかもしれません。

とにかく、これを行う適切な方法は[theWindow makeFirstResponder:nil]、最初に表示した後に呼び出すことです。これを行うタイミングは、ウィンドウがどのように表示されるかによって異なります。コードで明示的に表示すると、その直後に呼び出しを行うことができます。NIB で Visible at Launch フラグが設定されているために表示される場合は、NIB が読み込まれた後に表示されます。等。

于 2016-08-22T23:09:01.747 に答える
2

何かが可能であれば、何かが常にウィンドウ内の最初のレスポンダーであるべきです。通常、テキスト フィールドなどのいくつかのコントロールのみが最初のレスポンダーになることができますが、ユーザーがフル キーボード アクセスを有効にしている場合、デフォルトでボタンが選択されるのは正常です。

この特定のボタンを選択したくない場合は、ウィンドウinitialFirstResponderを別のコントロールに設定します。

を使用しないことをお勧めし-[NSWindow makeFirstResponder:nil]ます。ウィンドウは何も選択されていない状態で開始されますが、ユーザーがタブを押すとすぐにボタンが選択されます。ユーザーとしてウィンドウを「何も選択されていない」状態に戻す方法がないため、これは Mac アプリでは珍しいことです。

于 2016-10-21T13:17:41.997 に答える