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
вариант в иб! Принятый ответ кажется более конкретным, но немного хакерским по сравнению с этим.