OS X中的表格视图

OS X中的表格视图与IOS中的表格视图挺像的,区别在于OS X中的表格可以有多个列,还可以对各个列进行排序。
列之间通过id进行区分

if tableColumn?.identifier == "Title" {
    textField?.stringValue = song.title
} else if tableColumn?.identifier == "Duration" {
    let durationText = NSString(format: "%i:%02i", Int(song.duration)/60,Int(song.duration)%60)
    textField?.stringValue = durationText as String
}

排序通过这样的方法排序:

func tableView(tableView: NSTableView, sortDescriptorsDidChange oldDescriptors: [NSSortDescriptor]) {
    for sortDescriptor in tableView.sortDescriptors.reverse() as [NSSortDescriptor] {
songs.sortInPlace(){ (item1, item2) -> Bool in
        return sortDescriptor.compareObject(item1, toObject: item2) == NSComparisonResult.OrderedAscending
        }
    }
    tableView.reloadData()
}

在OS X中,你可以不用dataSource和delegate来使用TableView。通过绑定,你可以非常方便的将数据与表格连接起来。表格里的数据一般都是数组形式的,数组里存着一个个对象的实例,每一列就是对象的某个属性。

  • 使用Array Controller。将一个Array Controller与你的数组绑定起来,并在代码里创建一个Array Controller的Outlet。这里要注意的是,对数组的修改,比如添加与删除等,需要通过操作Array Controller来实现,比如添加songsController.addObject(aSong),再通过它们之间的绑定关系同步到你的数组。在你的代码中要访问这个数组中的元素的属性就可以正常的访问你自己的数组。
var songs: [Song] = []
//这里将所有song加到了songsController里,songsController在storyBoard里又是和songs绑定的
@IBOutlet weak var songsController: NSArrayController!
  • 将Array Controller绑定到你的TableView的content,控制键arrangedObjects,模型键空。这里如果你直接绑定你自己的数组,或者虽然绑定的是Array Controller但在代码里对数组的修改是改的你自己的数组是不行的。目前我也不知道为啥。
  • 接下来将你每一列的Table Cell View 下的Table View Cell下的文本域绑定到Table View Cell。控制键不需要,模型键objectValue.(你的对象的属性名)
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • *面试心声:其实这些题本人都没怎么背,但是在上海 两周半 面了大约10家 收到差不多3个offer,总结起来就是把...
    Dove_iOS阅读 27,741评论 30 472
  • 发现 关注 消息 iOS 第三方库、插件、知名博客总结 作者大灰狼的小绵羊哥哥关注 2017.06.26 09:4...
    肇东周阅读 16,725评论 4 61
  • 历史上的6月6日:1944年-盟军在法国诺曼底登陆;1966年-无人宇宙飞船拍下月球表面照片。 这一天曾发生过很多...
    诸葛io阅读 283评论 0 0
  • 作家的进步,在于写出多少能赚钱的文字。空写出成百上千页文字,并不会进步,只能写能赚钱的稿子,才能怀着必须好好写的心...
    灵林玖玖阅读 2,006评论 41 60
  • 是生活操纵着你 还是你主宰着生活 生命,就像是黑夜中缥缈的烛火 随风而动,探索着生命的出口 未来是游走在十字路口的...
    地球最后的夜晚阅读 273评论 6 9

友情链接更多精彩内容