iOS、OSX开发

OS X中的表格视图

2016-05-13  本文已影响51人  exialym

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。通过绑定,你可以非常方便的将数据与表格连接起来。表格里的数据一般都是数组形式的,数组里存着一个个对象的实例,每一列就是对象的某个属性。

var songs: [Song] = []
//这里将所有song加到了songsController里,songsController在storyBoard里又是和songs绑定的
@IBOutlet weak var songsController: NSArrayController!
上一篇下一篇

猜你喜欢

热点阅读