我需要创建一个模态对话框,该对话框是从nib文件加载的,应该在主窗口中单击按钮时显示。
我可以在nib文件中创建自定义窗口并在按钮单击时加载自定义对话框,但它不是模态对话框。我可以切换回主窗口。
MyWindowController
是NSWindowController
子类。
我使用下面的代码显示我的窗口以响应按钮事件:
MyWindowController *pController = [[MyWindowController alloc]
initWithWindowNibName:@"nibfilename"];
[MyWindowController showWindow:self];
答案 0 :(得分:17)
有几种方法可以做到这一点 - 实际上OS X中有两种不同的模态对话框:应用模式和窗口模态。使用错误的人会惹恼别人。一个是工作表,它附加到它影响的窗口(保存对话框就是一个例子)。另一个是应用程序模式,它阻止整个应用程序(打开对话框以这种方式工作,因为它们不适用于任何存在的窗口)。 Apple的sheet documentation应该可以帮助您定位。
答案 1 :(得分:11)
谢谢...
(实施例)。 创建一个名为“关于”的笔尖
if(pAbtCtrl == nil)
pAbtCtrl = [[AboutWindowController alloc] initWithWindowNibName:@"About"];
pAbtWindow = [pAbtCtrl window];
[NSApp runModalForWindow: pAbtWindow];
[NSApp endSheet: pAbtWindow];
[pAbtWindow orderOut: self];