4

.xib ファイルにカスタム ビューがありcontentViewControllerMAAttachedWindow. ビューにはいくつかNSTextFieldの があります。

MAAttachedWindow初めて開くときは、すべて問題ありません。関連するすべてのテキスト フィールドにテキストが表示されます。次に、ウィンドウを閉じて ( に設定nil)、再度呼び出すと ( と同じカスタム ビューを使用して再初期化されますcontentViewController)、最後のfirstResponderテキスト フィールドは空白になります。

奇妙なことに、「空の」テキスト フィールドをクリックすると、正しいテキストが表示されます。これは編集可能で、このテキスト フィールドにフォーカスがある限り適切に動作します。他の何かが になるとすぐfirstResponderに、テキストは再び消えます。

アップデート:

  • 色を変更しても、前述の動作は変わりませんでした。
  • このプロセス中、テキストの色が変わることはありません。
  • プレースホルダー テキストも前述の動作の対象となります。
  • このプロセス中、エラーは発生していません。
  • これは s には起こりませんNSSecureTextField
4

4 に答える 4

4

私は約5年前に、NSSavePanelのアクセサリビューでこの問題に最初に遭遇しました。私が見つけた解決策は、パネルを閉じる前に、ファーストレスポンダーをパネル自体に移動することでした。これが私の正確な方法です:

- (void)windowDidEndSheet:(NSNotification *)notification

    NSSavePanel *savePanel = [(XSDocument *)[self document] savePanel];
    if (!savePanel)
        return;
    // this fixes a bug where on next opening one of accessory view's text field will be blank and behave strangely
    [savePanel makeFirstResponder:savePanel];
}
于 2011-11-19T10:02:10.793 に答える
2

テキストフィールドのテキストの色を赤色 (または他の色) に変更してみてください。

于 2011-11-03T19:03:12.690 に答える
2

わかった!

を閉じる (そして後で割り当てを解除する) 前に、viewControllerを明示的に削除する必要がありました。superviewMAAttachedWindow

于 2011-11-06T00:19:01.917 に答える
0

ウィンドウを nil に設定する前に、すべてのファーストレスポンダーを辞任してみてください。

于 2011-11-04T03:09:13.987 に答える