У меня есть NSTableView, основанный на представлении, который я установил для пользовательского цвета выделения, переопределив drawSelectionInRect
в подклассе NSTableRowView.NSTableView row - изменение цвета при подсветке
Первоначально я заметил, что текст был автоматически изменен с темного цвета на светлый цвет, когда я щелкнул его (хотя в последнее время он только делает это с перерывами). У меня также есть графика в этом представлении строки таблицы, которые имеют плохой контраст при подсвечивании строки, поэтому я внедрил tableViewSelectionDidChange
в делегат моего табличного представления.
Он отлично работал и все, кроме tableViewSelectionDidChange
не вызывается до после Отпустите кнопку мыши. Когда я использую клавиатуру для изменения выбора, tableViewSelectionDidChange
срабатывает немедленно.
Мои два основных вопроса:
- Могу ли я сделать
tableViewSelectionDidChange
огонь сразу, а не на MouseUp? - Есть ли что-то, что я могу сделать, чтобы текст в моем представлении строк надежно изменился на белый, когда выбран ряд строк?
Я проверил, как это делают приложения Apple. Я просмотрел Mail.app и щелкнул строку в списке сообщений (в ней есть значок скрепки вложений). Почта обрабатывает его, не меняя цвет строки до мышки. Есть ли способ, которым я могу это сделать?
Существует метод делегата 'tableViewSelectionIsChanging:', который отлично подходит для ваших целей, нет? Если нет, почему бы и нет? – bhaller
Это именно то, что я искал; Я не могу поверить, что не заметил этого в документах. Благодаря! – Aaron
ОК, я поставил его в качестве ответа, чтобы получить кредит за него. : -> Я не ожидал, что это будет так просто! : -> – bhaller