2015-09-04 42 views
0

я в основном пытаюсь воссоздать поповер, который существует в некоторых настройках Xcode, как этот в настройках сборки:NSTableView Layout проблема с подсветкой и цветом фона

enter image description here

Я попытался с и без использования a NSArrayController для управления контентом, но в каждом из тестов я столкнулся с различными проблемами, которые мне не удалось решить.

Желаемая Result

  • Полная белый фон
  • Множественный выбор и (Single) редактируемых ячеек
  • Нет переупорядочивание требуется
  • При нажатии на кнопку + Я хочу, чтобы новая ячейка будет выбрана и в режиме редактирования
  • Я хочу получить уведомление о том, когда текст изменяется во время редактирования, чтобы иметь возможность ответить на это.

1. Использование методов делегатов.

Когда я настроил все вверх я получил этот результат:

enter image description here

Это не хорошо выглядеть, поэтому я пошел и выбрал «Рисует фон» для NSTableViewCell, в результате которого это который выглядит хорошо, когда я редактирую ячейку:

enter image description hereenter image description here

Но когда я просто Выделите ячейку, это посмотреть s, как это:

enter image description here

Похоже, подсвечивание прибудет, размещенные позади фон ячейки.

Здесь я застрял и не знаю, как исправить.

2. Использование NSArrayController

Когда я переконфигурировать и связать это с NSArrayController подсвечивание выглядит великолепно:

enter image description here

Но когда я изменить ячейку, все изменения фона на серые :

enter image description here

Это тоже не то, что я хочу, но не могу понять, что делать.

-

Примечание

В желаемом результате я перечислил некоторые вещи, как «Когда я нажимаю на кнопку + я хочу новая ячейка будет выбрана и в режиме редактирования» и «Я хочу получить уведомление когда текст изменяется во время редактирования, чтобы иметь возможность ответить на это ». Возможно, это повлияет на выбор того, какой маршрут взять, так как больше вещей о Thins TableView я не понял.

Но этот вопрос Все о том, как исправить выделение и выбор, чтобы они всегда оставались белыми, и просто выбор ячейки выглядит так, как ожидалось.

Пример кода

Пример кода для версии Делегаты Method:

https://github.com/erikberglund/StackOverflow/tree/master/TableViewDelegates

Пример кода для версии Bindings:

https://github.com/erikberglund/StackOverflow/tree/master/TableViewBindings

+1

Просьба указать ссылку на образец github. BTW включить чередующиеся строки для nstableview (checkbox) –

+0

Да, о чередующихся строках, это единственное, что я хотел бы оставить и использовать только на белом фоне. –

+0

Ваш код в порядке 10.11. (15A279b) Или я не понял вопроса http://postimg.org/gallery/16fmzog4o/ce73258f/ Я отключил чередование, как вам было нужно –

ответ

2

Заставьте внешний вид аква. Так что вместо унаследованного выбрать aqua. Это решило проблемы для меня.

Aqua

+0

Да, это известная ошибка в Йосемити с энергией и popovers. По-видимому, это исправлено в El Capitan, но это временное решение, данное Apple. –

+0

Также старайтесь удалить [super draw: dirtyrect] на белом фоне –

+0

Amazing! Большое вам спасибо, это определило проблему для меня 10.10.5. Я также удалил [super draw: dirtyRect] со фона и, похоже, работает так, как ожидалось. Я очень благодарен вам за помощь! –

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