cocoa - 设置 TableView 的数据源时无法分配给此表达式的结果

标签 cocoa swift

我想在我的 Cocoa 应用程序中使用 NSTableView,因此我必须将 TableView 的 NSTableViewDataSource 委托(delegate)设置为 self。但是,由于错误 Cannot assign to the result of this expression,以下代码无法编译。

myTable.dataSource = self

我确实像这样声明了 myTable 变量:

@IBOutlet var myTable: NSTableView

另请注意,我正确声明我的 AppDelegate 符合 NSTableViewDataSource 协议(protocol)。

那么上面两行有什么问题呢?

此外,我将 TableView 声明为 @IBOutlet var myTable: NSTableView 是否正确?或者我应该将其定义为可选变量还是隐式解包的可选变量?

最佳答案

看起来 NSTableView 还没有完全现代化。它的 dataSource 属性仍然是非正式的,仅作为访问器方法存在,而不是使用 @property 声明的属性。因此,Swift 接口(interface)没有 dataSource 属性。它具有方法 dataSource()setDataSource()

那么,试试:

myTable.setDataSource(self)

关于cocoa - 设置 TableView 的数据源时无法分配给此表达式的结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24286923/

相关文章:

swift - 如何创建一个 for in 循环来实际循环所有元素

ios - Xcode 6 playground — 我无法创建 OS X playground 文件

macos - 自定义Spotlight导入器和查找器的“更多信息”部分

objective-c - SceneKit 中的正交相机和缩放控件

ios - 如何在 xcode 中使 5 个按钮的水平宽度相同

ios - 通过 UIButton 选择单元格 - CollectionViewCell - Swift

cocoa - 在 NSStatusItem 应用程序中显示 NSOpenPanel

cocoa - 哪里可以找到 NSTableView 的 "delegate"和 "datasource"方法文档?

ios - 无法从 swift 访问 objective-c 方法。桥接设置和 obj-c 类实例化

swift - 除了帮助 iOS 中的特征收集外,UIPresentationController 还需要什么?