【问题标题】:nsbutton click is not calling the action method - cocoa programming with swiftnsbutton click 没有调用动作方法 - 可可快速编程
【发布时间】:2019-08-08 00:10:10
【问题描述】:

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

【问题讨论】:

  • 在故事板上,右键单击按钮,查看是否有多个连接。如果有,删除其中一个。
  • 控制台是否记录了任何内容?
  • @Kelvin,我正在使用 xib 并且没有多个连接。
  • @Willeke,控制台中没有记录任何内容。
  • 能否在一个小型测试项目中隔离问题?

标签: swift macos cocoa action nsbutton


【解决方案1】:

我遇到了同样的问题。我在.h文件中添加了对主窗口控制器中声明的子窗口控制器(又名NSWindowController)的强引用,问题就解决了。

放一些类似的东西

@property (strong, nonatomic) AboutWindowController *aboutWindowController;

在您的头文件中的@interface@end 之间。

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

self.aboutWindowController = [[AboutWindowController alloc] initWithWindowNibName:@"AboutWindow"];
    [self.aboutWindowController showWindow:self];

aboutWindowController 替换为您自己的控制器变量。将 AboutWindowController 替换为您的窗口控制器子类名称。

您只需要来自主窗口的强引用,第二个窗口就可以正常工作。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-10-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-07-06
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多