swift – 将数据解析为NSTableView
程序员大家好,
首先,我是OSX / iOS编程的新手,我正在努力学习swift.我在java方面相当称职,并希望自学一些新东西.我知道swift编程语言处于早期阶段. 我有一个使用parse.com数据浏览器的表.我可以从该表中获取元素并将它们存储在一个数组中.通常,在java中,我会简单地迭代这些元素并填充JTable.现在,我的问题是……我将如何做到这一点?我试过读苹果api,我觉得我的智商下降了.我可以理解getNumberOfRows函数/方法,但其他函数对我来说毫无意义.我的xib文件中有一个NSTable,并且将委托和数据源放在app委托文件中.如何设置标识符以便我可以开始设置信息. 我知道我并没有真正帮助,但我非常感谢任何建议. 谢谢.
是的,Cocoa的tableviews很复杂.
在tableview中获取内容的绝对基础是设置其数据源,该数据源必须采用NSTableViewDataSource协议.然后,您必须区分基于视图和基于单元格的tableview.在基于视图的视图中,您可以使用在Interface Builder中设计的视图,基于单元格的视图更古老,更简单.您了解numberOfRowsInTableView函数,因此我继续使用更复杂的函数. 基于细胞的TableVies 对于基于单元格的tableViews,第二个基本函数## Heading ##是 func tableView(tableView: NSTableView!,objectValueForTableColumn tableColumn: NSTableColumn!,row: Int) -> AnyObject! 当你得到它,它很容易.作为第一个参数,您可以获得tableView(仅当您为多个tableView使用相同的dataSource时才会感兴趣). func tableView(tableView: NSTableView!,row: Int) -> AnyObject!{ var result = "" var columnIdentifier = tableColumn.identifier if columnIdentifier == "number" { result = "(row+1)" } if columnIdentifier == "name" { result = model.persons[row].name } if columnIdentifier == "lastName" { result = model.persons[row].lastName } return result } 如果要设置值,请使用 func tableView(tableView: NSTableView!,setObjectValue object: AnyObject!,forTableColumn tableColumn: NSTableColumn!,row: Int) Object表示应传输到数据模型的新值. 基于视图的TableViews 在基于视图的tableViews中,事物有所不同. 在这里,您必须在单独的nib文件中设计自定义视图.然后,在初始化程序中注册nib. let nib = NSNib(nibNamed: "Example",bundle: NSBundle.mainBundle()) self.tableView.registerNib(nib,forIdentifier: "Example") 这允许您使用makeViewWithIdentifier:owner创建视图的实例: func tableView(tableView: NSTableView!,viewForTableColumn tableColumn: NSTableColumn!,row: Int) -> NSView! 示例实现: func tableView(tableView: NSTableView!,row: Int) -> NSView!{ let view = tableView.makeViewWithIdentifier("Example",owner: self) as MyCustomView view.field1.stringValue = model.persons[row].name view.field2.stringValue = model.persons[row].lastName view.field3.stringValue = "(row+1)" return view } (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |