示例 TableView 不打印数组 Swift OSX
Sample TableView not print the array Swift OSX
我的应用程序中有下一个代码,但只打印下一个图像,我不知道 why.Someone 谁能帮我解决这个问题 error.I 认为错误在词典中。
import Cocoa
class ViewController: NSViewController {
@IBOutlet weak var viewTable: NSTableView!
func getDataArray () -> NSArray{
var dataArray:[NSDictionary] = [["FirstName": "Debasis", "LastName": "Das"],
["FirstName": "Nishant", "LastName": "Singh"],
["FirstName": "John", "LastName": "Doe"],
["FirstName": "Jane", "LastName": "Doe"],
["FirstName": "Mary", "LastName": "Jane"]];
return dataArray;
}
func numberOfRowsInTableView(aTableView: NSTableView!) -> Int
{
let numberOfRows:Int = getDataArray().count
return numberOfRows
}
func tableView(tableView: NSTableView!, objectValueForTableColumn tableColumn: NSTableColumn!, row: Int) -> AnyObject!
{
var newString: (AnyObject?) = getDataArray().objectAtIndex(row).objectForKey(tableColumn.identifier)
println(newString)
return newString;
}
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view.
}
override var representedObject: AnyObject? {
didSet {
}
}
}
也许这很愚蠢,但知道怎么做是件好事,我希望这会是useful.Finally我的代码可以工作,他唯一需要的是设置为数据源。
你为故事板中的单元格设置标识符了吗?如果是这样,那么只需获取行并使用标识符即可获取 "FirstName" 或 "LastName",至于 return
func tableView(tableView: NSTableView, objectValueForTableColumn tableColumn: NSTableColumn?, row: Int) -> AnyObject?
{
var columnIdentifier = tableColumn!.identifier
var newString: (AnyObject?)
newString = getDataArray().objectAtIndex(row).valueForKey(columnIdentifier)
println(newString)
return newString
}
如果您对如何使用基于单元格的 tableView 有进一步的疑问:https://developer.apple.com/library/mac/documentation/Cocoa/Conceptual/TableView/PopulatingCellTables/PopulatingCellTables.html
编辑:
您应该将 tableView 设置为基于单元格。
而且我认为您忘记将 ViewController 设置为 Storyboard
中的 tableview 的数据源和 delegete
我的应用程序中有下一个代码,但只打印下一个图像,我不知道 why.Someone 谁能帮我解决这个问题 error.I 认为错误在词典中。
import Cocoa
class ViewController: NSViewController {
@IBOutlet weak var viewTable: NSTableView!
func getDataArray () -> NSArray{
var dataArray:[NSDictionary] = [["FirstName": "Debasis", "LastName": "Das"],
["FirstName": "Nishant", "LastName": "Singh"],
["FirstName": "John", "LastName": "Doe"],
["FirstName": "Jane", "LastName": "Doe"],
["FirstName": "Mary", "LastName": "Jane"]];
return dataArray;
}
func numberOfRowsInTableView(aTableView: NSTableView!) -> Int
{
let numberOfRows:Int = getDataArray().count
return numberOfRows
}
func tableView(tableView: NSTableView!, objectValueForTableColumn tableColumn: NSTableColumn!, row: Int) -> AnyObject!
{
var newString: (AnyObject?) = getDataArray().objectAtIndex(row).objectForKey(tableColumn.identifier)
println(newString)
return newString;
}
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view.
}
override var representedObject: AnyObject? {
didSet {
}
}
}
也许这很愚蠢,但知道怎么做是件好事,我希望这会是useful.Finally我的代码可以工作,他唯一需要的是设置为数据源。
你为故事板中的单元格设置标识符了吗?如果是这样,那么只需获取行并使用标识符即可获取 "FirstName" 或 "LastName",至于 return
func tableView(tableView: NSTableView, objectValueForTableColumn tableColumn: NSTableColumn?, row: Int) -> AnyObject?
{
var columnIdentifier = tableColumn!.identifier
var newString: (AnyObject?)
newString = getDataArray().objectAtIndex(row).valueForKey(columnIdentifier)
println(newString)
return newString
}
如果您对如何使用基于单元格的 tableView 有进一步的疑问:https://developer.apple.com/library/mac/documentation/Cocoa/Conceptual/TableView/PopulatingCellTables/PopulatingCellTables.html
编辑: 您应该将 tableView 设置为基于单元格。 而且我认为您忘记将 ViewController 设置为 Storyboard
中的 tableview 的数据源和 delegete