Часто задаваемые вопросы
Этот документ отвечает на обычно спрашиваемые вопросы о возможностях перетаскивания Набора Приложения. Это включает информацию об обещании HFS, перетаскивает и специальная информация относительно перетаскивания перекрестного приложения от объектов NSTableView.
Этот документ касается следующих предметов:
HFS Promise перетаскивают
Вопросы, заданные в этом разделе, включают:
Когда выполнение Promise HFS притягивает какао, как я устанавливаю пользовательское изображение перетаскивания?
NSView’s dragPromisedFilesOfTypes:fromRect:source:slideBack:event:
метод не обеспечивает способ установить изображение перетаскивания, которое будет использоваться при перетаскивании файла обещания HFS. Однако это вызовы метода другой метод NSView, dragImage:at:offset:event:pasteboard:source:slideBack:
в его реализации, действительно обеспечивающей параметр для NSImage, который будет использоваться в качестве изображения перетаскивания. Так, для установки пользовательского изображения перетаскивания просто переопределите dragImage:at:offset:event:pasteboard:source:slideBack:
, установите свое пользовательское изображение, вызовите super's dragImage:at:offset:event:pasteboard:source:slideBack:
и передайте в своем пользовательском изображении перетаскивания.
Как я добавляю, что другие типы области монтажа к Promise HFS притягивают какао?
NSView's dragPromisedFilesOfTypes:fromRect:source:slideBack:event:
метод не обеспечивает средние значения для добавления других типов области монтажа к данным Promise HFS, потому что это не представляет область монтажа, которую это использует. Однако существует обходное решение для добавления других данных типа области монтажа. dragPromisedFilesOfTypes:fromRect:source:slideBack:event:
NSView's вызовов dragImage:at:offset:event:pasteboard:source:slideBack:
метод в его реализации. Так, можно переопределить dragImage:at:offset:event:pasteboard:source:slideBack:
, добавьте, что любая дополнительная область монтажа вводит Вас потребность, и затем вызовите super's dragImage:at:offset:event:pasteboard:source:slideBack:
позволить всему продолжаться как прежде.
Перетаскивание перекрестного приложения
Вопросы, заданные в этом разделе, включают:
Когда я Восстанавливаю Свое приложение на версии 10.2 OS X, Мой NSTableView Теряет Возможность Перетащить к Другим Приложениям. Как я Фиксирую Это?
Ошибка в NSTableView в версии 10.2 OS X и более позднем перекрестном приложении причин перетаскивает для не работы без дополнительного кода от разработчика приложений. Перетаскивание в приложении все еще работает правильно.
Можно работать вокруг ошибки путем разделения на подклассы NSTableView и переопределения draggingSourceOperationMaskForLocal:
возвратить надлежащее NSDragOperation
(обычно NSDragOperationCopy
, в зависимости от какого перетаскивает работу, которую Вы хотите, чтобы перетаскивание выполнило). Только приложения основывались на версии 10.2 OS X и позже затронуты; приложения основывались на версии 10.1.x OS X, не затронуты.
В OS X v10.4 Вы может работать вокруг этой ошибки без разделения на подклассы. По умолчанию реализация NSTableView draggingSourceOperationMaskForLocal:
запрещает перетаскивание местам назначения за пределами приложения при разрешении любого типа перетаскивания в том же приложении. Можно изменить это поведение путем отправки табличного представления a setDraggingSourceOperationMask:forLocal:
сообщение. Передача значения YES
поскольку второй параметр указывает, что указанная маска применяется, когда целевой объект находится в том же приложении. Передача значения NO
указывает, что указанная маска применяется когда целевой объект в приложении вне приложения получателя. Маски архивируются с табличным представлением.