xcode - 如何添加 TableView 数据源并委托(delegate)给单独的类/对象?

标签 xcode macos cocoa swift

我正在尝试学习如何使用 SWIFT 制作原生 MacOS X 应用程序。我目前没有使用 Objective-C 甚至 Xcode 的背景。

我实现了一个简单的应用程序,它响应一些按钮点击并修改一些标签。现在,我想把一些东西放在 table 上。我在我的 UI 上放了一个 NSTableView,我发现我必须实现一个类,它提供 NSTableViewDelegate 和 NSTableViewDataSource 协议(protocol)的实现。

我认为为了代码组织和可读性,将所有用于控制我的 TableView 的东西放在主 AppDelegate 的单独模块中会更清晰。不管怎样,到目前为止我看到的任何教程都只关注如何实现协议(protocol)并将它们全部放在 AppDelegate 类中。

我创建了一个新的 SWIFT 文件,并将以下临时代码放入其中:

import Foundation
import Cocoa


class LogTableController: NSObject, NSTableViewDelegate, NSTableViewDataSource {

    @IBOutlet var tableView: NSTableView!
    var logTableData:[NSDictionary] = []

    func numberOfRowsInTableView (tableView: NSTableView!) -> Int {
        return 0
    }

    func tableView(tableView: NSTableView, objectValueForTableColumn tableColumn: NSTableColumn!, row rowIndex: Int) -> AnyObject! {
        return "Hello"
    }
}

但我无法找到如何继续在我的 TableView 和我的自定义类或该类的实例之间创建导出。在 InterfaceBuilder 中我无法执行此操作。

我想我遗漏了一些东西,任何关于如何组织我的代码而不是将所有东西都放在 AppDelegate 类中的答案将不胜感激。

谢谢!

最佳答案

在 Interface Builder 中,您需要将对象库中的对象添加到文档大纲中,然后将其类设置为您的自定义类。然后您可以将委托(delegate)和数据源连接到该对象。

关于xcode - 如何添加 TableView 数据源并委托(delegate)给单独的类/对象?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27178399/

相关文章:

iphone - ASP 页面和 Cocoa/ObjC 之间的安全通信

python - 额外的 python 库无法在 macOS 上运行

objective-c - 将用户数据附加到 AXObserver

ios - 如何在 iOS 中构建 Cocoa touch 框架?

xcode - WKWebView 不在 Xcode 中

swift - deinit 未在样板 macOS 应用程序上调用

iphone - 关于使用 Accelerate.framework 的问题

objective-c - stringWithContentsOfFile :encoding:error: error 260

iphone - 如何通过按钮退出应用程序?

xcode - 如何将 Core Data.framework 添加到现有的 xcode 4.6.2 项目