Обнаружить двойной щелчок по заголовку NSTableview

Мне нужно было бы обнаружить двойной щелчок на NSTableViewЗаголовок

я обнаружил следующее, что срабатывает при двойном щелчке, но я не могу определить, по какому столбцу щелкнули:

[table setTarget:self];
[table setDoubleAction:@selector(myDoubleClickInList:)];

и внутри myDoubleClickInList: метод, который я использую

[table clickedRow] == -1

чтобы получить заголовок.

но я не могу получить идентификатор столбца из [table clickedColumn]Это вообще возможно?

2 ответа

Решение

Предполагая, что у вас есть доступ к переменной экземпляра или свойству с именем table тогда следующее позволит вам получить идентификатор столбца,

NSInteger column = [table clickedColumn];
NSRange columnRange = NSMakeRange(0, [table numberOfColumns]);
if (NSLocationInRange(column, columnRange){
    NSTableColumn *tableColumn = [[table tableColumns] objectAtIndex:column];
    NSString *identifier = [tableColumn identifier];
    // Now do something with the column identifier...

} else {
    // The click was not in a column, do something else...
}

Если бы мне пришлось это сделать, я бы создал UIview подкласс с UITapGestureRecognizer (двойное нажатие -> селектор) добавлено в верхней части экрана, и в - (UIView *)tableView:(UITableView *)tableView viewForHeaderInSection:(NSInteger)section вернул этот пользовательский вид. Я не могу предоставить вам какой-либо код прямо сейчас, тем не менее, я надеюсь, что это будет полезно.

Другие вопросы по тегам