首页 > 解决方案 > 如何连接 NSTableView/Table View 以避免运行时错误“无法连接操作,目标类 NSObject 不响应”)

问题描述

在基于视图的单列 NSTableView 中,其表格单元格视图中包含默认的 NSTextField,我试图通过将 .xib 的 Interface Builder 视图中的 NSTextField 的操作连接到我的方法中来收听已确认的用户编辑窗口的 ViewController。但是在运行时(在窗口初始化期间)我得到“无法连接操作,目标类 NSObject 不响应 -textCellChanged”。我不明白哪个 NSObject 被错误地定位,并且我在窗口中有许多其他 NSView 正确连接到同一个 WindowController 中的其他插座和操作。

我看到其他各种具有类似症状的帖子,通常也在 NSTableView 的上下文中,并且在我的上下文中探索了这些其他问题的解决方案或部分解决方案,但没有成功。我忽略了在 Interface Builder 中连接 Table View Cells 有什么特别的魔力吗?或者换一种说法:目标对象是如何在运行时实际确定的,当操作只是文件所有者中的一个类方法时(并且对于所有连接到公共超级视图的同一所有者的不同控件,这何时会有所不同)?

以下是上下文的一些细节:

尽管在旧版本的 Xcode 中(我在 10.2 中),其他帖子都暗示了 Xcode 接线中的错误。以下是我尝试过的各种方法,结果都相似:

最后,这里有一些相关的帖子以及它们的不同之处:

这里有什么不为人知的吗?在此先感谢您的帮助。

标签: macoscocoainterface-builder

解决方案


xib 文件中的文件所有者是一个占位符对象,表示 nib 的所有者并表示传递给makeView(withIdentifier:owner:). 将 nib 的所有者(通常是视图控制器或窗口控制器)传递给makeView(withIdentifier:owner:).


推荐阅读