NSTableView - выбрать строку и немедленно реагировать на события мыши

У меня есть представление на основе NSTableView, в котором ячейки содержат ряд элементов управления, включая текстовые поля и поля редактирования. Когда пользователь пытается щелкнуть элемент управления в ячейке, чтобы, например, начать редактирование текстового поля, основная цель щелчка игнорируется, и ячейка выбирается. Затем для выполнения первоначально запланированного действия требуется еще один щелчок, и даже этот щелчок может быть отложен до того, как он будет учтен.

Как я могу избежать этой проблемы и выбрать строку и событие мыши, перенаправленные на элемент управления за один раз?

2 ответа

Решение

Я решил эту проблему, создав подкласс NSTableView:

@implementation QuickResponseTableView

- (BOOL)validateProposedFirstResponder:(NSResponder *)responder forEvent:(NSEvent *)event
{
    // This allows the user to click on controls within a cell withough first having to select the cell row
    return YES;
}

@end

Была такая же проблема. После долгой борьбы, это волшебно сработало, когда я выбрал None в отличие от дефолта Regular (другой вариант Source List) для Highlight вариант в иб! Принятый ответ кажется более конкретным, но немного хакерским по сравнению с этим.

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