我面临一个奇怪的问题,我与xib(Swift)一起创建了NSWindowController的子类。在新创建的xib(窗口)中,我添加了两个标签,两个文本字段和一个按钮,这些文本字段的出口已创建,并且还为该按钮创建了一个动作。当我运行代码并单击按钮时,未调用该操作。我已经检查了文件所有者和连接,一切都很好并且已连接。我用Objective C做过同样的事情,它工作得很好。我不知道出了什么问题。
答案 0 :(得分:2)
我遇到了同样的问题。我在.h文件中向在主窗口中声明的子窗口(又名NSWindowController)添加了一个强引用,问题得以解决。
输入类似“ @property(强的,非原子的)NSWindowController * aboutWindowController;”之类的东西。在头文件中@interface和@end之间。
然后在您的实现(.m)文件中,通过以下方式调用您的第二个窗口:
self.aboutWindowController = [[AboutWindow分配] initWithWindowNibName:@“ AboutWindow”]; [self.aboutWindowController showWindow:self];
用您自己的控制器变量替换aboutWindowController。用窗口控制器子类名称替换AboutWindow。
您只需要主窗口的强烈引用即可使第二个窗口正常工作。