0

我将 NSViewController 的视图设置为主菜单窗口的内容视图,现在我应该如何使用 - (BOOL)windowShouldClose:(id)sender ?

<NSWindowDelegate>在@interface 中使用并穿上- (BOOL)windowShouldClose:(id)sender.m 但不起作用

4

1 回答 1

2

-(BOOL)windowShouldClose:(id)sender只会发送给将要发送消息的窗口的委托。(如果您不清楚代表是什么,他们有点像每个人都向其报告的军队指挥官)

在这里,为了能够-windowShouldClose:在你的中使用NSViewController,你需要将 设置NSViewController为窗口的delegate. 有两个步骤:

  1. 使“NSViewController”成为窗口委托成为可能。通常窗口的委托是NSWindowController (它被命名是有原因的),但是如果你想让'NSViewController'成为你需要使用 <NSWindowDelegate>你已经完成的协议的委托。

  2. 实际上将视图控制器设置为委托。正如 Ken Thomases 在他的评论中指出的那样,您可以在 Interface Builder 中通过拖动窗口的delegate出口并将其连接到您的 NSViewController 来执行此操作。或者您可以以编程方式执行此操作: [self.view.window setDelegate:self]正如您提到的那样应该可以工作。

于 2012-04-10T16:49:23.630 回答