NSViewControllerのビューをメインメニューのウィンドウのcontentviewとして設定しましたが、どのように使用すればよいですか-(BOOL)windowShouldClose:(id)sender?
<NSWindowDelegate>
@interfaceで使用し- (BOOL)windowShouldClose:(id)sender
、.mを付けましたが、機能しません
NSViewControllerのビューをメインメニューのウィンドウのcontentviewとして設定しましたが、どのように使用すればよいですか-(BOOL)windowShouldClose:(id)sender?
<NSWindowDelegate>
@interfaceで使用し- (BOOL)windowShouldClose:(id)sender
、.mを付けましたが、機能しません
-(BOOL)windowShouldClose:(id)sender
メッセージを送信するウィンドウのデリゲートにのみ送信されます。(代表者が何であるかについて明確でない場合、彼らは誰もが報告する軍の司令官のようなものです)
ここで、で使用できるようにする-windowShouldClose:
には、をウィンドウのとしてNSViewController
設定する必要があります。これには2つのステップがあります。NSViewController
delegate
'NSViewController'がウィンドウデリゲートになることを可能にします。通常、ウィンドウのデリゲートはNSWindowController
(理由からその名前が付けられています)ですが、「NSViewController」をデリゲートにする場合
<NSWindowDelegate>
は、すでに実行したプロトコルを使用する必要があります。
実際にViewControllerをデリゲートとして設定します。Ken Thomasesがコメントで述べたように、ウィンドウのdelegate
アウトレットをドラッグしてNSViewControllerに接続することで、InterfaceBuilderでこれを行うことができます。または、プログラムで実行することもできます
[self.view.window setDelegate:self]
。前述のように、機能するはずです。