hussain Shabbir が正しく指摘したようにmakeKeyAndOrderFront:
、既存のウィンドウ キーのみを作成し、前面に配置します。新しいウィンドウは作成されません。
最初に行うべきことは、「MainView」の名前を、それがどのようなものであるかをより正確に表す名前に変更することです。それは確かにビューであってはなりません。この件に関しては、「メイン」とは、アプリケーションのウィンドウのコンテキストで特定のものを意味します。その意味は、特にユーザーが複数のウィンドウを持つことができる場合、メインである場合とそうでない場合がある「メイン」ウィンドウとは異なります。それらの中の一つ。
MainView を完全に NSWindowController に置き換えることをお勧めします。便利なことに、NSWindowController のサブクラスを作成する場合、Xcode はそれと一緒に nib を作成するオプションを提供します。そのペン先にはウィンドウがあり、必要に応じて各ウィンドウコントローラーがロードされます。
次に、新しいメニュー項目で新しいウィンドウ コントローラーを作成し、それをパイルに投げます (特に ARC の下で、それらすべてを有効にしてウィンドウを表示できるようにするには、ウィンドウ コントローラーの変更可能な配列をどこかに保持する必要があります)。そのウィンドウを表示するためのウィンドウ コントローラ。