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(pasteboardWriter
pasteboardWriter
: 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)
frame
contents:(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
экземпляр,item
pasteboardWriter
переданный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 и позже.