检测点击的tableView

时间:2017-03-23 19:11:55

标签: swift macos

无论选择什么,我都需要知道鼠标点击所涉及的tableview。考虑

func tableViewSelectionDidChange(notification: NSNotification) {
    self.selectedTableView = (notification.object as! NSTableView)
    switch selectedTableView {
    case oneTableView?:
        print("one")
        break
    case twoTableView?:
        print("two")
        break
    default:
        print("wtf \(selectedTableView)")
    }
}

表/视图'两个'是一个'的详细信息。在' one'中选择一行改变tableview' two'的内容。 (标题 - >详细信息)。但是,如果用户单击已选择的行,则没有通知,因为选择没有更改。 Basi我只需要知道上次查看的tableview /列。

mouseDown方法是否更好(方式更难)但我看到objective-c或' UI' AppKit中的等效委托方法 - > NSTableView - >用于列或行选择方法的NSTableView?

2 个答案:

答案 0 :(得分:0)

你应该做的是,在这个UITableViewDelegate函数中:

func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
    if let tableOne = tableView as? TableOne {// do code here to other table}
    else if let tableTwo = tableView as? TableTwo {//do code here to other table}
}

答案 1 :(得分:0)

好吧,在Sierra目前的AppKit(8.2.1)状态的osx上,这是不可行的。

我的gui正在对一组标题/详细信息tableView使用单个动作控件,我需要知道哪些是有效的,所以我要在详细信息表视图中强制选择一个空选项来指示标题视图选择将被使用。

但我想知道为什么osx swift没有像ios或objective-c那样的委托方法集?