升级到MacOS Sierra后,因此对于Xcode 8,tableViewSelectionDidChange
功能不再起作用。我认为我的代码是正确的。
func tableViewSelectionDidChange(_ notification: Notification) {
if let selectedRow = (notification.object as AnyObject).selectedRow {
if ( selectedRow > -1 ) {
selectedItem = data[selectedRow]
if let nome = selectedItem?.value(forKey: "nome") as? String {
nomeField.stringValue = nome
} else {
blankOutField(nomeField)
}
override func viewDidLoad() {
super.viewDidLoad()
let appDelegate = NSApplication.shared().delegate as! AppDelegate
managedContext = appDelegate.managedObjectContext
tableView.delegate = self
tableView.dataSource = self
fetchDataAndRefreshTable()
}
func fetchDataAndRefreshTable() {
let fetchRequest = NSFetchRequest<NSFetchRequestResult> (entityName: "CadastroPacientes")
let sortDescriptor = NSSortDescriptor(key: "nome", ascending: true, selector: #selector(NSString.localizedStandardCompare(_:)))
fetchRequest.sortDescriptors = [sortDescriptor]
do {
data = try managedContext!.fetch(fetchRequest) as! [NSManagedObject]
} catch {
Swift.print(error)
}
}
我找不到解决方案,因为似乎未选中该行,单击TableView中的行时没有任何反应。
该程序正在使用Core Data。以前一切都很完美。
答案 0 :(得分:0)
将selectedRow > -1
更改为selectedRow >= -1
,因为Binary operator '>' cannot be applied to operands of type Int
.... NEXT如果您可以将selectedItem
更改为selectedRow
这些是我在遇到的主要错误我尝试运行你的代码