nsbutton单击未调用操作方法-快速地进行可可编程

时间:2019-03-17 13:27:10

标签: swift macos cocoa action nsbutton

我面临一个奇怪的问题,我与xib(Swift)一起创建了NSWindowController的子类。在新创建的xib(窗口)中,我添加了两个标签,两个文本字段和一个按钮,这些文本字段的出口已创建,并且还为该按钮创建了一个动作。当我运行代码并单击按钮时,未调用该操作。我已经检查了文件所有者和连接,一切都很好并且已连接。我用Objective C做过同样的事情,它工作得很好。我不知道出了什么问题。

1 个答案:

答案 0 :(得分:2)

我遇到了同样的问题。我在.h文件中向在主窗口中声明的子窗口(又名NSWindowController)添加了一个强引用,问题得以解决。

输入类似“ @property(强的,非原子的)NSWindowController * aboutWindowController;”之类的东西。在头文件中@interface和@end之间。

然后在您的实现(.m)文件中,通过以下方式调用您的第二个窗口:

self.aboutWindowController = [[AboutWindow分配] initWithWindowNibName:@“ AboutWindow”]; [self.aboutWindowController showWindow:self];

用您自己的控制器变量替换aboutWindowController。用窗口控制器子类名称替换AboutWindow。

您只需要主窗口的强烈引用即可使第二个窗口正常工作。