NSDraggingItem
NSDraggingItem класс охватывает единственный перетащенный элемент в NSDraggingSession экземпляр.
Посмотрите Ссылку класса NSDraggingSession для получения дополнительной информации
Объекты NSDraggingItem чрезвычайно ограничили времена жизни. Не сохраняйте эти элементы, поскольку изменяющийся за пределами предписанных времен жизни не оказывают влияния на перетаскивание.
Когда NSDraggingSession метод beginDraggingSessionWithItems:event:source: вызывается, элементы перетаскивания передали методу, сразу используются и не сохраняются. Дальнейшие изменения в элементе перетаскивания связались с возвращенным NSDraggingSession должен быть сделан через метод перечисления enumerateDraggingItemsWithOptions:forView:classes:searchOptions:usingBlock:. При перечислении, NSDraggingItem экземпляры создаются прямо прежде чем быть данным Блоку перечисления. После возврата из Блока, NSDraggingItem экземпляр больше не действителен.
Оператор импорта
Swift
import AppKit
Objective C
@import AppKit;
Доступность
Доступный в OS X v10.7 и позже.
-
Инициализирует и возвращает элемент перетаскивания с помощью указанного содержания.
Объявление
Swift
init(pasteboardWriterpasteboardWriter: NSPasteboardWriting)Objective C
- (instancetype)initWithPasteboardWriter:(id<NSPasteboardWriting>)pasteboardWriterПараметры
pasteboardWriterОбъект, обеспечивающий содержание перетаскивания. Объект должен реализовать
NSPasteboardWritingпротокол.Возвращаемое значение
Инициализированный экземпляр NSDraggingItem с указанным содержанием перетаскивания.
Обсуждение
Когда разработчик создает
NSDraggingItemэкземпляр, это для использования с методом просмотраbeginDraggingSessionWithItems:event:source:Во время вызова того метода,pasteboardWriterпомещается на область монтажа перетаскивания дляNSDraggingSessionэто содержит экземпляр элемента перетаскивания.Определяемый инициализатор.
Оператор импорта
Objective C
@import AppKit;Swift
import AppKitДоступность
Доступный в OS X v10.7 и позже.
-
Устанавливает кадр и содержание перетаскивания элемента.
Объявление
Swift
func setDraggingFrame(_frame: NSRect, contentscontents: AnyObject)Objective C
- (void)setDraggingFrame:(NSRect)framecontents:(id)contentsПараметры
frameКадр содержания элемента в том же координатном пространстве, что
draggingFrame.contentsСодержание элемента для отображения при перетаскивании. Обычно это
NSImage, но aCGImageRefбудет также работать.Обсуждение
Чередуйте единственный метод set компонента изображения.
Этот метод упрощает изменение компонентов
NSDraggingItemкогда существует только один компонент.Это - удобный метод. Этот метод устанавливает
draggingFrameи создает синглNSDraggingImageComponentэкземпляр с одним изображением, соответствующимNSDraggingImageComponentIconKeyключ. Необходимо только использовать этот метод при следующих условиях: изображение перетаскивания для этого элемента составлено из единственного изображения., или существует разумное число перетаскивания экземпляров элемента, создаваемых или перечислимых.Если бы Ваше приложение требует перетаскивания сотен элементов, этот метод создал бы экземпляр для каждого элемента, когда это вызывают. Сравните это с
imageComponentsProviderблок, который намного быстрее для определения и позволяет Набору Приложения создавать только подмножество использования элементовimageComponentsProvider.Этот метод установит
draggingFrameиimageComponentsсвойства.Оператор импорта
Objective C
@import AppKit;Swift
import AppKitДоступность
Доступный в OS X v10.7 и позже.
См. также
-
draggingFrame draggingFrameСвойствоВозвращает кадр элемента перетаскивания.
Обсуждение
Когда формирование перетаскивания установлено в, кадр перетаскивания обеспечивает пространственные отношения между экземплярами NSDraggingItem
NSDraggingFormationNone.Пространство точной координаты этого прямоугольника зависит от того, где это используется. Представление, инициировавшее использование перетаскивания
beginDraggingSessionWithItems:event:source:или представление Ваша передача вNSDraggingSessionимплантация экземпляраenumerateDraggingItemsWithOptions:forView:classes:searchOptions:usingBlock:.Оператор импорта
Objective C
@import AppKit;Swift
import AppKitДоступность
Доступный в OS X v10.7 и позже.
-
imageComponents imageComponentsСвойствоВозвращает массив перетаскивания компонентов изображения, использующихся для создания получателя изображение перетаскивания. (только для чтения)
Объявление
Swift
var imageComponents: [AnyObject]! { get }Objective C
@property(readonly, copy) NSArray *imageComponentsОбсуждение
Массив
NSDraggingImageComponentэкземпляры, использующиеся для создания изображения перетаскивания.Массив содержит копии компонентов. Изменения, внесенные в эти копии, не отражаются в перетаскивании. В случае необходимости,
imageComponentsProviderблок вызывают для генерации компонентов изображения.Оператор импорта
Objective C
@import AppKit;Swift
import AppKitДоступность
Доступный в OS X v10.7 и позже.
-
Массив Блоков, обеспечивающих компоненты изображения перетаскивания.
Объявление
Swift
var imageComponentsProvider: (() -> [AnyObject]!)?Objective C
@property(copy) NSArray *(^imageComponentsProvider)(void)Обсуждение
Изображение перетаскивания является составным объектом массива
NSDraggingImageComponentобъекты.Компоненты изображения перетаскивания не установлены непосредственно. Вместо этого Блок используется для генерации компонентов, и Блок вызовут при необходимости.
Блок может быть установлен в ноль, означая, что этот элемент перетаскивания не имеет никакого изображения. Обычно только перетаскивающие места назначения делают это, и только если существует по крайней мере один допустимый элемент в отбрасывании, и получатель не является тем объектом.
Компоненты составляются в рисовании порядка. Т.е. каждый компонент в массиве красится поверх предыдущих компонентов в массиве.
Оператор импорта
Objective C
@import AppKit;Swift
import AppKitДоступность
Доступный в OS X v10.7 и позже.
-
Возвращает объект читателя или писателя области монтажа, зависящий от контекста того, где используется этот элемент перетаскивания. (только для чтения)
Объявление
Swift
var item: AnyObject! { get }Objective C
@property(readonly, strong) id itemОбсуждение
Когда Вы создаете
NSDraggingItemэкземпляр,itempasteboardWriterпереданныйinitWithPasteboardWriter:.Однако при перечислении перетаскивания элементов с помощью
NSDraggingSessionметодenumerateDraggingItemsWithOptions:forView:classes:searchOptions:usingBlock:илиNSDraggingInfoметодenumerateDraggingItemsWithOptions:forView:classes:searchOptions:usingBlock:,itemне исходный экземпляр читателя или писателя области монтажа. Это - экземпляр одного из классов, предоставленных для метода перечисленияclassArrayпараметр.Оператор импорта
Objective C
@import AppKit;Swift
import AppKitДоступность
Доступный в OS X v10.7 и позже.
