2

Xcode で作成したアプリがあります。ドキュメントベースではありません。

ユーザーがドックアイコンをクリックしたときにウィンドウが再度開くようにするにはどうすればよいですか? Xcode が自動的にくれた nib からすべてを作成しています。

アプリのデリゲートのプロパティを実装applicationShouldOpenUntitledFile:して呼び出しようとしましたが、それはアプリのアイコンを台無しにします。(これは、ドキュメントのプレビューとして機能するアイコンに関係していると思います。)makeKeyAndVisiblewindow

いずれにせよ、私は少しググってみましたが、主に Carbon API やドキュメント ベースのアプリへの参照を見つけました。

ウィンドウ作成プロセスは NSApplicationMain とアプリの nib ファイルの間でどのように機能しますか? そのプロセスを複製するにはどうすればよいですか? どこで複製できますか?

4

1 に答える 1

6

一般に、 を使用NSWindowControllersすると、ウィンドウの操作がはるかに簡単になります。あなたの場合、App Delegate はウィンドウを直接所有するのではなくNSWindowController、ウィンドウを所有する を所有します。

これを行うには、NSWindowController(ユーザー インターフェイスの xib を使用して) 新しいサブクラスを作成し、ウィンドウを MainMenu.xib から新しい WindowController.xib に移行します。接続すれば準備完了です。(また、ウィンドウの「起動時に表示」チェックボックスがオフになっていることを確認してください

次に、アプリ デリゲートから、ウィンドウ コントローラーの新しいインスタンスを作成し (プログラムによるか、MainMenu.xib 経由かは関係ありません)、-showWindow:ウィンドウを表示する (またはキーになる) タイミングを指示します。-close消したいとき。

Dock アイコンのクリックへの応答に関しては、<NSApplicationDelegate>お探しのメソッドは-applicationShouldHandleReopen:hasVisibleWindows:.

于 2013-08-01T05:05:09.720 に答える