3

特定のNSViewでNSTextFieldsのタブ順序を設定しようとしています。私が理解している限り、nextKeyViewアウトレットを次のNSTextFieldに設定して、NSTextFieldsをInterfaceBuilderに接続する必要があります。私はこれをしました-そして効果はありません。タブを押すと、NSTextFieldsの1つに入った後、フォーカスが失われます。それだけです。タブを何度押しても、他のNSTextFieldはフォーカスを取り戻しません。

また、ウィンドウのinitialFirstResponderを設定する必要があることも読みました。私のAppDelegateがNSViewを呼び出し、NSViewが多くの異なるボタンを持つメニュー領域として機能し、それぞれが異なるビューのサブビューとしてロードされる異なるNSViewを呼び出すため、この特定のケースではこれを実行できないと思います。 。したがって、AppDelegateには、現在ロードされているNSViewを知る方法がありません。

NSViewベースでNSTextFieldsのタブ順序を設定する方法はありますか?

ありがとう

4

2 に答える 2

1

ウィンドウ内のキーループの自動再計算を無効にする必要があります。を参照してください-[NSWindow setAutorecalculatesKeyViewLoop:]

追加するために編集:これはInterfaceBuilderでも設定できます。

于 2012-04-11T17:40:13.207 に答える
0

これはあなたの状況に役立つ場合とそうでない場合がありますが、別の NSView 内で NSView を処理するときに次のことがうまくいきました。NSTextFields の 2 つの垂直スタックがありました。水平方向にトラバースするのではなく、1 つのスタックをタブで下に移動し、次に次のスタックに移動する必要がありました...そのため、2 つの垂直スタックのそれぞれを独自のボックスに埋め込みました (IB で、最初に項目を選択し、[エディター] > [埋め込み] > ボックス)。完璧に動作します。ボックスの外観が必要ない場合は、そのタイトルをクリアして、境界線の種類をなし: 非表示のボックスに設定できます。

于 2013-01-10T23:23:58.507 に答える