Можно ли передать указатель на объект в режиме перетаскивания?Пропустить указатель объекта в операции перетаскивания
Вот сценарий ...
У меня есть 'NSArray' пользовательских объектов. Для аргументов мы скажем, что это список объектов человека.
Этот список привязан к NSTableView
через NSArrayController
. NSTableView
- источник перетаскивания, и у меня есть NSView
в качестве места для перетаскивания.
При реализации перетаскивания можно легко получить имя выбранного человека (ов) из NSArrayController
как NSString
в процессе перетаскивания и передать его получателю в NSView
.
Однако, я хотел бы иметь возможность передать указатель на объект person, чтобы получатель имел доступ ко всему объекту.
Проблема заключается в том, что операция перетаскивания создает новый экземпляр объекта-человека и не делает ссылку на выделенный объект человека, несмотря на то, что в модели пользователя используются необходимые методы. В результате я получаю объект person в пункте назначения, он просто не заполняется данными объекта.
В идеале я хочу указатель на объект, потому что NSView будет использовать ссылку на объект, чтобы любые обновления самого объекта отражались как в NSView
, так и в NSTableView
(и везде, где используется объект).
Возможно ли использовать ссылку на объект в операции перетаскивания или мне нужно передать какую-то пользовательскую ссылку, которая является iVar объекта person, а затем выполнить поиск после того, как он достигнет пункта назначения? (Мне кажется, что мне кажется немного архаичным, учитывая, сколько объектов ссылка на Obj-c).
Я понимаю, что цель может принять операцию перетаскивания извне приложения, но указание операции как локальной операции будет учитывать это, не так ли?
Я проверил документы яблока, но, похоже, пока не нашел ответа.
Drag and Drop Programming Topics
Любые и все очень оцененная.
Спасибо, Питер! Похоже, я смотрел на правильный путь - просто не прошел достаточно далеко. Полезно знать, что не использовал адрес самого объекта - я просто изучал, был ли это жизнеспособным вариантом или нет. Сроки - это все! :-) – Hooligancat
Питер, просто чтобы вы знали, что отлично работали. :-) Благодаря!! Я закончил создание префикса идентификатора в глобальном классе методов, который у меня есть. Каждая модель имеет метод «cardboardRef», который возвращает его собственное имя класса и уникальный идентификатор объекта. Затем это отправляется через картотеку и берется на место назначения и разбирается, чтобы вернуть класс и идентификатор. Работает очарование! – Hooligancat