Распечатайте номер строки NSTableView строки, по которой щелкнул пользователь

У меня есть NSTableView с одним столбцом. Я хотел бы напечатать номер строки строки, на которую щелкнул пользователь. Я не уверен, с чего мне начать с этого. Есть ли способ для этого?


person Tom Coomer    schedule 22.03.2015    source источник


Ответы (2)


Вы можете использовать свойство selectedRowIndexes из tableView в методе tableViewSelectionDidChange в делегате NSTableView.

В этом примере tableView допускает множественный выбор.

Свифт 3

func tableViewSelectionDidChange(_ notification: Notification) {
    if let myTable = notification.object as? NSTableView {
        // we create an [Int] array from the index set
        let selected = myTable.selectedRowIndexes.map { Int($0) }
        print(selected)
    }
}

Свифт 2

func tableViewSelectionDidChange(notification: NSNotification) {
    var mySelectedRows = [Int]()
    let myTableViewFromNotification = notification.object as! NSTableView
    let indexes = myTableViewFromNotification.selectedRowIndexes
    // we iterate over the indexes using `.indexGreaterThanIndex`
    var index = indexes.firstIndex
    while index != NSNotFound {
        mySelectedRows.append(index)
        index = indexes.indexGreaterThanIndex(index)
    }
    print(mySelectedRows)
}
person Eric Aya    schedule 22.03.2015

Используйте 1_

https://developer.apple.com/library/mac/documentation/Cocoa/Reference/ApplicationKit/Classes/NSTableView_Class/#//apple_ref/occ/instp/NSTableView/selectedRowIndexes

Затем вы можете использовать эти индексы для получения данных из вашего dataSource (обычно это массив)

person A O    schedule 22.03.2015