swift – 将数据解析为NSTableView

swift – 将数据解析为NSTableView,第1张

概述程序员大家好, 首先,我是OSX / iOS编程的新手,我正在努力学习swift.我在java方面相当称职,并希望自学一些新东西.我知道swift编程语言处于早期阶段. 我有一个使用parse.com数据浏览器的表.我可以从该表中获取元素并将它们存储在一个数组中.通常,在java中,我会简单地迭代这些元素并填充JTable.现在,我的问题是……我将如何做到这一点?我试过读苹果api,我觉得我的智商 程序员大家好,

首先,我是OSX / iOS编程的新手,我正在努力学习swift.我在java方面相当称职,并希望自学一些新东西.我知道swift编程语言处于早期阶段.

我有一个使用parse.com数据浏览器的表.我可以从该表中获取元素并将它们存储在一个数组中.通常,在java中,我会简单地迭代这些元素并填充Jtable.现在,我的问题是……我将如何做到这一点?我试过读苹果API,我觉得我的智商下降了.我可以理解getNumberOfRows函数/方法,但其他函数对我来说毫无意义.我的xib文件中有一个NStable,并且将委托和数据源放在app委托文件中.如何设置标识符以便我可以开始设置信息.

我知道我并没有真正帮助,但我非常感谢任何建议.

谢谢.

@H_403_10@ 是的,Cocoa的tablevIEws很复杂.

在tablevIEw中获取内容的绝对基础是设置其数据源,该数据源必须采用NStableVIEwDataSource协议.然后,您必须区分基于视图和基于单元格的tablevIEw.在基于视图的视图中,您可以使用在Interface Builder中设计的视图,基于单元格的视图更古老,更简单.您了解numberOfRowsIntableVIEw函数,因此我继续使用更复杂的函数.

基于细胞的tableVIEs

对于基于单元格的tableVIEws,第二个基本函数## heading ##是

func tableVIEw(tableVIEw: NStableVIEw!,objectValueFortableColumn tableColumn: NStableColumn!,row: Int) -> AnyObject!

当你得到它,它很容易.作为第一个参数,您可以获得tableVIEw(仅当您为多个tableVIEw使用相同的dataSource时才会感兴趣).
第二个指定tableColumn.您可以使用其标识符来标识列.您在InterfaceBuilder中设置此标识符.单击您的tablevIEw直到选中一列.然后在侧栏中设置Restoration ID.
作为最后一个参数,你得到你的行.您返回AnyObject类型的对象.我通常会返回一个字符串,我不知道NSNumber是否也有效.
一个简单的示例实现如下:

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创建视图的实例:
然后你可以配置你的视图(我喜欢为此子类NSVIEw)并将其作为结果传回

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}
总结

以上是内存溢出为你收集整理的swift – 将数据解析为NSTableView全部内容,希望文章能够帮你解决swift – 将数据解析为NSTableView所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/web/1089811.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-27
下一篇 2022-05-27

发表评论

登录后才能评论

评论列表(0条)

保存