我有一个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;
}
答案 0 :(得分:0)
我相信我遇到了一个错误(我稍后会提交雷达)但是我能够通过将按钮连接到IB中CombinedHistoryEntryTableCellView
类的操作来解决问题。由于运行动作所需的代码在视图控制器中,因此我向单元视图对象提供了对控制器的引用,以便它可以调用它。
但仍然不知道为什么这是一个问题,但如果其他人经历过这个问题,这是一个合适的解决方法。