带有 IBAction 的按钮导致“无法连接操作,目标类 NSNibExternalObjectPlaceholder 不响应 -action”错误
Posted
技术标签:
【中文标题】带有 IBAction 的按钮导致“无法连接操作,目标类 NSNibExternalObjectPlaceholder 不响应 -action”错误【英文标题】:Button with IBAction causes "Could not connect action, target class NSNibExternalObjectPlaceholder does not respond to -action" error 【发布时间】:2016-01-07 01:52:36 【问题描述】:我有一个 Storyboard 场景,其中包含一个 NSTableView 和一个 NSTableViewRow 子类。在这个表格视图行中,我有一个按钮,我已将其连接到场景中视图控制器中的一个操作。
当表格加载时,我从 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】:我相信我遇到了一个错误(稍后我将提交雷达报告),但我能够通过将按钮连接到 IB 中 CombinedHistoryEntryTableCellView
类的操作来解决此问题。由于运行该操作所需的代码位于视图控制器中,因此我为单元格视图对象提供了对控制器的引用,以便它可以调用它。
虽然仍然不知道为什么这是一个问题,但如果其他人遇到这种情况,这是一个合适的解决方法。
【讨论】:
以上是关于带有 IBAction 的按钮导致“无法连接操作,目标类 NSNibExternalObjectPlaceholder 不响应 -action”错误的主要内容,如果未能解决你的问题,请参考以下文章
UINavigationBar 按钮,根据点击改变 IBAction
自定义 UITableViewCell 中按钮上的 IBAction