ドキュメントベースのココアアプリを開発しています。起動インターフェイスは GarageBand をモデルにしています。ウェルカム画面が表示され、2 つの交互表示 (セグメント化されたコントロールによって切り替えられます) のいずれかが表示されます: 「新規プロジェクトの作成」と「最近のプロジェクトの参照」。この各ビューは、専用の NSViewController (この場合は NewProjectViewControllerとRecentProjectsViewController ) によって制御されます。
これを実現するために、空のドキュメントを作成する代わりに、起動時にこの「ようこそ画面」を表示するように NSDocumentController をサブクラス化しました (空のドキュメントは、ユーザーが特定の最小設定を指定するまで、私のアプリでは意味がありません)。
起動/最初のドキュメントの作成後、ユーザーが [Create New Project...] (つまり、新しいドキュメント) を選択すると、Welcome 画面の [New Project] タブと同じインターフェイスを再利用するウィンドウが表示されます。同じNewProjectViewControllerを作成し、そのビューをウィンドウに追加します。
どちらの場合も、View Controller のビューは .xib から作成されます。ビュー コントローラ自体はプログラムによってインスタンス化され、そのビューは -addSubview: を使用してウィンドウの既存のサブビューに追加されます。
NewProjectViewController のビューには、いくつかの編集可能な NSTextField インスタンスとその他のコントロールが含まれています。
問題: ビュー コントローラーのビュー内のすべての NSTextField インスタンスは、初回のみテキスト入力を受け入れます。ビューが表示された 2 回目以降、テキストを編集しようとすると、システム アラート サウンドが生成されます。テキストは選択 (強調表示) できますが、変更はできません。また、テキストはプログラムで変更できます。
他のコントロール (ポップアップ ボタン) は問題なく変更できます。
最初から [ようこそ] 画面ではなく [新しいドキュメント] ウィンドウを表示しようとしましたが、結果は同じです。
これはファーストレスポンダーの問題ですか?