具有IBAction的按钮导致"无法连接动作,目标类NSNibExternalObjectPlaceholder不响应-action"错误

时间:2016-01-07 01:52:36

标签: cocoa nstableview xcode-storyboard

我有一个Storyboard场景,其中包含一个带有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;
}

1 个答案:

答案 0 :(得分:0)

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

但仍然不知道为什么这是一个问题,但如果其他人经历过这个问题,这是一个合适的解决方法。