Есть ли интеллектуальный способ обработки обмена / повторного использования представления в NSScrollView? - PullRequest
4 голосов
/ 26 июня 2011

Справочная информация:

Я создаю основанный на представлении элемент управления NSTableView-esque в Какао / Objective-C, который предлагает простоту использования UITableView с точки зрения возможностиразмещать представление в Интерфейсном Разработчике, а не пытаться создать подкласс NSCell.Это также умно с его ресурсами, в котором он принимает подобную парадигму многократного использования ячейки как UITableView.Это, конечно, все сделано внутри NSScrollView.

У меня есть большая часть хитроумного обмена, выяснения и работы.При прокрутке, если представление полностью обрезано, оно добавляется в пул неиспользуемых представлений.Аналогичным образом, если в видимую область попадает неотображаемый вид, он пытается извлечь вид из неиспользуемого пула, а если ни один не доступен, он создает новый из кончика, содержащего прототип представления.

Подобные решениятам есть, но я люблю возиться и получаю удовольствие от реализации сам :).Однако я не знаю решения, которое решает эту проблему, и мне нужен какой-то совет!

Проблема:

Скажем, например, что каждое представлениесодержит текстовое полеЕсли текстовое поле редактируется, и пользователь начинает прокручивать, я бы хотел, чтобы эта ячейка не освобождалась в пуле, чтобы она не «теряла фокус» или «фокусировалась» на вновь отображаемом представлении.который повторно использует выпущенный.Есть ли интеллектуальный способ пометить представление как редактируемое, не требуя от программиста, создавшего пользовательское представление, перехвата событий и пометить его как таковой?

Спасибо за помощь!

1 Ответ

2 голосов
/ 26 июня 2011

Ваш контроллер просмотра может соответствовать неформальному протоколу NSEditorRegistration.Он предназначен для решения именно этой проблемы.

...