2016-01-28 4 views
2

У меня есть NSTableView, основанный на представлении, который я установил для пользовательского цвета выделения, переопределив drawSelectionInRect в подклассе NSTableRowView.NSTableView row - изменение цвета при подсветке

Первоначально я заметил, что текст был автоматически изменен с темного цвета на светлый цвет, когда я щелкнул его (хотя в последнее время он только делает это с перерывами). У меня также есть графика в этом представлении строки таблицы, которые имеют плохой контраст при подсвечивании строки, поэтому я внедрил tableViewSelectionDidChange в делегат моего табличного представления.

Он отлично работал и все, кроме tableViewSelectionDidChange не вызывается до после Отпустите кнопку мыши. Когда я использую клавиатуру для изменения выбора, tableViewSelectionDidChange срабатывает немедленно.

Мои два основных вопроса:

  • Могу ли я сделать tableViewSelectionDidChange огонь сразу, а не на MouseUp?
  • Есть ли что-то, что я могу сделать, чтобы текст в моем представлении строк надежно изменился на белый, когда выбран ряд строк?

Я проверил, как это делают приложения Apple. Я просмотрел Mail.app и щелкнул строку в списке сообщений (в ней есть значок скрепки вложений). Почта обрабатывает его, не меняя цвет строки до мышки. Есть ли способ, которым я могу это сделать?

+1

Существует метод делегата 'tableViewSelectionIsChanging:', который отлично подходит для ваших целей, нет? Если нет, почему бы и нет? – bhaller

+0

Это именно то, что я искал; Я не могу поверить, что не заметил этого в документах. Благодаря! – Aaron

+0

ОК, я поставил его в качестве ответа, чтобы получить кредит за него. : -> Я не ожидал, что это будет так просто! : -> – bhaller

ответ

1

Существует метод делегата tableViewSelectionIsChanging:, который, как представляется, идеально подходит для ваших целей, нет?

 Смежные вопросы

  • Нет связанных вопросов^_^