gpt4 book ai didi

objective-c - 创建相同 NSWindowController 类类型的多个窗口

转载 作者:行者123 更新时间:2023-12-03 17:11:24 25 4
gpt4 key购买 nike

我想在每次用户发送操作时创建一个相同 NSWindowController 类类型的 NSWindow。

这是我的代码。

objController = [[MyController alloc] initWithWindowNibName:@"MyController"];
[objController showWindow:nil];

这是一个简单的两行代码,它为我提供了 NSWindow。但问题是,如果我不创建类级别对象,则不会显示窗口。所以,我必须创建一个类级别的对象。它运行良好,并为我提供了 MyController 类型的 NSWindow。

但是,由于它是一个类级别对象,如果我想在每次用户单击按钮时触发此操作,则上一个窗口将被关闭。新窗口出现。

我不希望这种事发生。我想将所有以前的 NSWindows 保留在内存中,并且用户可以与它们交互。

我该怎么做?

我想,这应该是一件小事,但当时我手里没有任何解决方案。

请帮我得到这个。

谢谢。

最佳答案

我的猜测是,“类级别对象”是指 MyController 类型的 @property,它确实只能容纳一个窗口 Controller 。如果您需要存储 MyController 的多个实例,并且不想为每个实例创建单独的 @property,则需要将它们放入数组类型中,即NSMutableArray.

@property NSMutableArray *myControllers 添加到您的类中,并使用 self.myControllers 初始化该数组(例如在 - init 方法或您的类中) = [NSMutableArray 数组]。现在,您可以使用 [self.myControllers addObject:] 添加新创建的窗口 Controller ,这使它们保留在内存中,而不是通过共享相同的存储属性来相互覆盖。

关于objective-c - 创建相同 NSWindowController 类类型的多个窗口,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25408506/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com