喂!
我在将数组中的一些数据显示到 NSTableView 时遇到问题。 我的信息保存在核心数据中。我获取此信息并添加到一个数组中,但是当我尝试在表中添加此信息时,我收到的只是一个具有正确行数的表,但都具有相同的隐式文本:“TableView Cell”。
对于每个表列,我都设置了一个标识符,并且我认为我的绑定(bind)是正确的。 这是我的表 Controller 代码:
@IBAction func reload(sender: NSButton) {
tableView.reloadData()
}
func getItemsFromDataBase() {
let fetchRequest = NSFetchRequest(entityName: "MyData")
// Create a sort descriptor object that sorts on the "title"
// property of the Core Data object
let sortDescriptor = NSSortDescriptor(key: "nume", ascending: true)
// Set the list of sort descriptors in the fetch request,
// so it includes the sort descriptor
fetchRequest.sortDescriptors = [sortDescriptor]
if let fetchResults = managedObjectContext!.executeFetchRequest(fetchRequest, error: nil) as? [MyData] {
for var i = 0 ; i < fetchResults.count ; i++ {
objects.append(fetchResults[i]) //Get data from database and put in array
}
}
}
func numberOfRowsInTableView(tableView: NSTableView) -> Int {
getItemsFromDataBase()
showNames()
return objects.count
}
func tableView(tableView: NSTableView, objectValueForTableColumn tableColumn: NSTableColumn?, row: Int) -> AnyObject? {
let identifier = tableColumn?.identifier
println(identifier!)
if let propertyEnum = ArrayDisplayProperty(rawValue: identifier!) {
let cellView = tableView.makeViewWithIdentifier(identifier!, owner: self) as NSTableCellView
let object = objects[row]
switch propertyEnum {
case .Nume:
cellView.textField!.stringValue = object.nume
case .Prenume:
cellView.textField!.stringValue = object.prenume
case .Varsta:
cellView.textField!.stringValue = "\(object.varsta)"
case .Localitate :
cellView.textField?.stringValue = object.localitate
case .Major:
cellView.textField?.stringValue = object.major == 1 ? "Yes" : "No"
}
println(object.nume)
return object.varsta
}
return 0
}
最佳答案
您是否仅对表格列或文本字段和文本字段单元格列进行了界定?
这两个 Value 都需要通过模型键路径绑定(bind)到 Table Cell View(假设您有具有属性“name”的实体 Person)objectValue.name
。 Xcode 显示一些警告“无法解析输入的 key 路径”,但我认为可以忽略。
例如,如果我的实体 Person
仅具有一个属性 name
,则我的绑定(bind)与数组 Controller 如下所示:
表格 View -> 表格内容 -> 内容 -> 使用 Controller 键rangedObjects绑定(bind)到数组 Controller
名称列 -> 值 > 使用 Controller 键 arrangedObjects
和模型键路径 name
绑定(bind)到数组 Controller
文本字段 -> 值 -> 使用模型键路径绑定(bind)到表单元格 View objectValue.name
文本字段单元格 -> 值 -> 使用模型键路径绑定(bind)到表单元格 View objectValue.name
关于macos - 使用数组填充 NSTableView - 绑定(bind)表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27374559/