[问题] 请问tableview如何显示二维阵列?

楼主: Talenius (Harmonic Inspirations)   2016-03-24 15:53:16
语言:Swift 2
撰写:OS X
接口:Xcode 7
已宣告一个二维阵列
var JData: [[Int32]] = Array(count: 300, repeatedValue:
Array(count: 23, repeatedValue: 0))
并连线SQLite汇入到JData里
在ViewController.swift中
func tableView(tableView: NSTableView,
viewForTableColumn tableColumn: NSTableColumn?, row: Int) -> NSView? {
if let cellView = tableView.makeViewWithIdentifier
(tableColumn!.identifier, owner: self) as? NSTableCellView {
switch tableColumn!.identifier {
case "uidY": cellView.textField?.stringValue
= "\(JData[i][1])"
case "uidH": cellView.textField?.stringValue
= "\(JData[i][2])"
}
}
}
//JData[i][1]:欲显示第i列资料,但在func tableView里的写法应有误
请问:
1. 因为会新增笔数(新增列数),所以二维阵列应如何宣告与设初始值较佳?
2. 如何显示所有二维资料JData?以及指定范围的资料?
恳请指点
谢谢
作者: darktt (小朱)   2016-03-24 21:45:00
建议改用Array去包你的资料,它的好处是能查这个"元素"是否在你的阵列中抱歉,你有用Array,是我没看清楚其实如果非必要,减少使用二维阵列,不只是UI显示,资料处理也比较不容易,如果一定要怎么做的话,可以考虑使用Dictionary包Array
作者: tentenlee (天天)   2016-03-25 01:14:00
i在哪边呀?
楼主: Talenius (Harmonic Inspirations)   2016-03-25 04:42:00
var i=0在func tableView前宣告,但这写法不见得好宣告成二维是为了cell的计算方便若用dictionary,因每笔资料有23行,与index皆是数字则请问如何宣告与计算会较为方便?另外这边比较大问题是如何用tableView显示二维资料?
作者: darktt (小朱)   2016-03-25 06:05:00
说真的台湾有在研究OS X的App的人并不多,建议将NSTableView的官方说明文件看清楚再来
作者: uranusjr (←這人是超級笨蛋)   2016-03-25 11:02:00
这种用途比较建议用 dataSource 来做, 不需要 delegate可以自己先研究一下, 如果晚点有空再详回感觉你应该也没有 iOS 经验?如果有的话, 这概念其实和UITableView 差不多
楼主: Talenius (Harmonic Inspirations)   2016-03-27 13:09:00
感谢各位的指点

Links booklink

Contact Us: admin [ a t ] ucptt.com