1

Делаю настраиваемое представление, что я хочу быть привязок/основные данные, совместимые и представляют собой сбор данных (а-ля NSTableView)Получение уникального идентификатора для каждого элемента контента NSArrayController в

Есть ли способ, что я вид может ссылаться на конкретное подмножество элементов в коллекции (кроме текущего выбора) после изменения пользователем?

Немного контекста:
В представлении будет отображаться ряд перемещаемых пользователем ящиков в 2D-пространстве. Каждый блок соответствует записи в модели. Некоторые могут быть перемещены сразу, и я не могу полагаться на значение дельта, которое одинаково для каждого окна (поэтому не добавляйте дельту для каждого выбранного объекта).

Я предполагаю, что я ищу что-то вроде идентификатора, назначенного каждому элементу массива содержимого NSArrayController, так что представление может связывать этот идентификатор с каждым полем. Моя первая мысль заключалась в том, чтобы использовать индекс в массиве контента, но это может быть испорчено отменой/повторением. Я мог бы подклассифицировать NSArrayController и заставить его автоматически генерировать идентификатор для каждого элемента модели, но какао уже уже делает что-то подобное? Похоже, что я что-то пропустил.

ответ

0

Почему бы просто не обратиться к самим объектам? Вы можете держать их в наборе или массиве, в зависимости от того, что подходит.

Если вам действительно нужен идентификатор какого-то типа: зачем? что ты собираешься с этим делать?

+0

Спасибо. Да, как общий ответ на мой вопрос, вы правы. Я понял, что было не так в моем случае, и разместил детали ниже. –

1

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

Объекты в представлении не соответствовали клавишам в словаре, поэтому я предположил, что это означает, что NSArrayController изменил объекты-прокси, которые он использует, для размещения объектов модели.

Однако оказалось, что NSDictionary копирует свои ключи, поэтому кажется, что это не подходит для ситуаций, когда вы хотите связать конкретный экземпляр объекта с другим.

NSMapTable является более гибким родственником и может быть сконфигурирован так, чтобы не копировать его ключи.

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

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