0

NSViewControllerのビューをメインメニューのウィンドウのcontentviewとして設定しましたが、どのように使用すればよいですか-(BOOL)windowShouldClose:(id)sender?

<NSWindowDelegate>@interfaceで使用し- (BOOL)windowShouldClose:(id)sender、.mを付けましたが、機能しません

4

1 に答える 1

2

-(BOOL)windowShouldClose:(id)senderメッセージを送信するウィンドウのデリゲートにのみ送信されます。(代表者が何であるかについて明確でない場合、彼らは誰もが報告する軍の司令官のようなものです)

ここで、で使用できるようにする-windowShouldClose:には、をウィンドウのとしてNSViewController設定する必要があります。これには2つのステップがあります。NSViewControllerdelegate

  1. 'NSViewController'がウィンドウデリゲートになることを可能にします。通常、ウィンドウのデリゲートはNSWindowController (理由からその名前が付けられています)ですが、「NSViewController」をデリゲートにする場合 <NSWindowDelegate>は、すでに実行したプロトコルを使用する必要があります。

  2. 実際にViewControllerをデリゲートとして設定します。Ken Thomasesがコメントで述べたように、ウィンドウのdelegateアウトレットをドラッグしてNSViewControllerに接続することで、InterfaceBuilderでこれを行うことができます。または、プログラムで実行することもできます [self.view.window setDelegate:self]。前述のように、機能するはずです。

于 2012-04-10T16:49:23.630 に答える