gpt4 book ai didi

xcode - 如何使用 Interface Builder 管理 Cocoa 应用程序中的多个窗口

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

我的应用程序有 3 个类:AppController、Profile、ProfileBuilder。我还需要 3 个窗口:每个类(class)一个。我尝试将所有 3 个都保留为 NSObject 的子类,并将 initWithNibName 应用于 NSWindowController 类 WindowController 变量,但是当我尝试在每个窗口上输出一些值时,它不起作用,而且使用 NSLog 窗口结果为 null。我想知道管理多个窗口的最佳方法是什么,也许所有窗口都来自同一个类,例如 AppWindowsController,在其他类中涉及尽可能少的特定代码,并在可能的情况下将其他类保留为 NSObject 而不是 NSWindowController 的子类。因此,如果有的话,也许有一种方法可以远程控制窗口的行为,在特定类中添加尽可能少的代码,只是为了使它们尽可能清晰并专注于其内容。谢谢,希望我说清楚了,我实际上对 Cocoa 框架还很陌生。

最佳答案

您应该能够在不同类的 init 方法中使用窗口加载 nib 文件。例如,在配置文件中,您可以执行以下操作:

-(id)init {
if (self = [super init]) {
NSArray *array;
BOOL success = [[NSBundle mainBundle] loadNibNamed:@"ProfileWindow" owner: self topLevelObjects:&array];
if (success) {
for (id obj in array) {
if ([obj isKindOfClass:[NSWindow class]]) {
self.profileWindow = obj;
}
}
[self.profileWindow makeKeyAndOrderFront:self];
}
}
return self;
}

profileWindow 是一个属性(类型为强)。在 xib 文件中,我将文件所有者设置为 Profile。

关于xcode - 如何使用 Interface Builder 管理 Cocoa 应用程序中的多个窗口,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12629356/

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