1

有没有办法在非基于文档的应用程序中使用“command + n”创建/启用多个窗口?我想使用 command + n 拥有该窗口的无限实例(实际上不是无限的,但可能是 6-7 个实例)

或者我必须创建一个基于文档的应用程序并将我的所有代码移植到新项目模板中是唯一的解决方案?

我可以看到“新建”的菜单按钮现在被禁用。

4

2 回答 2

1

有几种方法可以做到这一点。首先将 New 菜单项连接到 IBAction 方法。将方法命名为对您有意义的名称。

接下来,您将要向控制器(为简单起见,应用程序委托)添加某种属性,该属性基本上是一个窗口堆栈,仅存储对每个窗口或窗口控制器的引用。NSMutableArray 应该做得很好。

现在您可以通过几种方式完成下一部分,但我建议使用 nib/xib 创建一个 NSWindowController 子类(特别是如果这些窗口中包含相同的基本内容)。在 nib 文件中做你想做的事。

现在在您的 IBAction 方法中,创建窗口控制器类的新实例,将其添加到可变数组中。告诉它加载它的窗口。

您只需决定是否应从堆栈中删除控制器并在其窗口关闭时将其设置为 nil。处理这个问题的方法有很多,并且取决于您的设计以了解什么是正确的。

于 2013-10-29T14:06:12.137 回答
0

Try this :-

NSWindowController *yourWindow=[[[[yourWindowController alloc]init]retain]autorelease];
[yourWindow loadWindow];
于 2013-10-29T12:18:20.297 回答