当显示 sheet 时,NSheet 控制器不会得到 运行。
NSheet controller doesn't get run when the sheet is displayed.
在 Objective-C 环境中,我有一个自定义控制器 "MyWindowController" 作为相关 XIB 的文件所有者,用作我的主 [=29] 上的模态 sheet =].
根据 Apple 文档调用如下(减去弃用):
//in the main's awakeFromNib
MyWindowController = [[NSWindowController alloc]
initWithWindowNibName:@"MyWindowController"];
//in the main place where needed
[NSApp beginSheet: MyWindowController.window
modalForWindow: _window
modalDelegate: nil
didEndSelector: nil
contextInfo: nil ];
[NSApp runModalForWindow: MyWindowController];
// Dialog is up here.
[NSApp endSheet: MyWindowController.window];
[MyWindowController.window orderOut:self];
目前,MyWindowController 是 NSWindowController 的最小子类,包括以下按钮:
- (IBAction)doCancel:(id)sender
{
//...set return value
[NSApp stopModal];
}
sheet在被运行主代码调用时正确显示,但控制器中的代码从未运行。在 MyWindowController 中设置的断点,包括在其 awakeFromNib 处的断点从未达到。
sheet这个主题我试了很多变体,效果都一样,难倒我了。
[[NSWindowController alloc] initWithWindowNibName:@"MyWindowController"]
创建 NSWindowController
的一个实例。如果您想要 MyWindowController
的实例,请使用
[[MyWindowController alloc] initWithWindowNibName:@"MyWindowController"]
在 Objective-C 环境中,我有一个自定义控制器 "MyWindowController" 作为相关 XIB 的文件所有者,用作我的主 [=29] 上的模态 sheet =].
根据 Apple 文档调用如下(减去弃用):
//in the main's awakeFromNib
MyWindowController = [[NSWindowController alloc]
initWithWindowNibName:@"MyWindowController"];
//in the main place where needed
[NSApp beginSheet: MyWindowController.window
modalForWindow: _window
modalDelegate: nil
didEndSelector: nil
contextInfo: nil ];
[NSApp runModalForWindow: MyWindowController];
// Dialog is up here.
[NSApp endSheet: MyWindowController.window];
[MyWindowController.window orderOut:self];
目前,MyWindowController 是 NSWindowController 的最小子类,包括以下按钮:
- (IBAction)doCancel:(id)sender
{
//...set return value
[NSApp stopModal];
}
sheet在被运行主代码调用时正确显示,但控制器中的代码从未运行。在 MyWindowController 中设置的断点,包括在其 awakeFromNib 处的断点从未达到。
sheet这个主题我试了很多变体,效果都一样,难倒我了。
[[NSWindowController alloc] initWithWindowNibName:@"MyWindowController"]
创建 NSWindowController
的一个实例。如果您想要 MyWindowController
的实例,请使用
[[MyWindowController alloc] initWithWindowNibName:@"MyWindowController"]