如何在'tableViewSelectionDidChange:'中学习Swift,其中NSTableView的选择确实改变了?

时间:2017-07-15 10:44:41

标签: swift cocoa nstableview

我有一个macOS项目,其中有两个tableView,其viewControl与delegate相同。我如何知道在tableViewSelectionDidChange上调用哪两个:?

编辑:我正在使用tableViewSelectionDidChange:来防止点击一些我用作“标题组”的项目。

我读了这个问题NSTableViewDelegate with 2 tables and tableViewSelectionDidChange:(NSNotification *)aNotification但是作为初学者,我不知道如何在Swift中这样做。

我试过

func tableViewSelectionDidChange(_ notification: Notification) {

    let tableViewName = (notification.object? as AnyObject).identifier // error

    if tableViewName == myTableView1 {
        print("myTableView1")
    }

}

但我得到了“不明确使用标识符”错误。有人如此善良地告诉我我做错了什么吗?一个工作的例子将非常感激。

1 个答案:

答案 0 :(得分:4)

来自NSTableViewSelectionDidChangeNotification

的文档
  

通知对象是其选择已更改的表格视图。此通知不包含userInfo字典。

因此该对象显然是非可选的,并且是一个表视图实例。这是 AnyObject

let tableView = notification.object as! NSTableView

if let identifier = tableView.identifier, identifier == "myTableView1" {
    print("myTableView1")
}