带有 IBA 的按钮导致"Could not connect action, target class NSNibExternalObjectPlaceholder does not respond



我有一个情节提要场景,其中包含一个带有NSTableViewRow子类的NSTableView。在这个表视图行中,我有一个按钮,我已经将它连接到场景中视图控制器中的一个操作。

当表加载时,我从Xcode中看到了这个神秘的错误,当我点击按钮时,该操作从未启动:

Could not connect action, target class NSNibExternalObjectPlaceholder does not respond to -playVideo:

文件的所有者似乎从未连接过。

由于这些NSTableRowViews是以编程方式实例化的,我检查了所有者是否正在设置,事实上是:

- (NSView *) tableView:(NSTableView *)tableView viewForTableColumn:(NSTableColumn *)tableColumn row:(NSInteger)row {
...
CombinedHistoryEntryTableCellView *cellView = [tableView makeViewWithIdentifier:@"deviceEvent" owner:self];
...
return cellView;
}

我相信我遇到了一个错误(稍后我会提交一份雷达文件),但我可以通过将按钮连接到IB中CombinedHistoryEntryTableCellView类上的一个操作来解决这个问题。由于运行该操作所需的代码在视图控制器中,我为单元格视图对象提供了一个控制器的引用,以便它可以调用它。

不过,我仍然不知道为什么会出现这种问题,但如果其他人遇到这种情况,这是一个合适的解决方法。

相关内容

最新更新