NSDraggingInfo
NSDraggingInfo
протокол объявляет методы, предоставляющие информацию о сеансе перетаскивания.
NSDraggingInfo
методы протокола разработаны, чтобы быть вызванными из реализации класса NSDraggingDestination
методы протокола. Набор Приложения автоматически передает объект, соответствующий NSDraggingInfo
протокол как параметр каждому из методов, определенных NSDraggingDestination
. NSDraggingInfo
сообщения должны быть отправлены в этот объект; Вы никогда не должны создавать класс, реализующий NSDraggingInfo
протокол.
Наследование
Не применимый
Оператор импорта
Swift
import AppKit
Objective C
@import AppKit;
Доступность
Доступный в OS X v10.0 и позже.
-
Возвращает объект области монтажа, содержащий перетаскиваемые данные.
Объявление
Swift
func draggingPasteboard() -> NSPasteboard!
Objective C
- (NSPasteboard *)draggingPasteboard
Возвращаемое значение
Объект области монтажа, содержащий перетаскиваемые данные.
Обсуждение
В конечном счете выполняющаяся работа перетаскивания использует эти данные области монтажа а не изображение, возвращенное
draggedImage
метод.Оператор импорта
Objective C
@import AppKit;
Swift
import AppKit
Доступность
Доступный в OS X v10.0 и позже.
-
Возвращает число, однозначно определяющее сеанс перетаскивания.
Объявление
Swift
func draggingSequenceNumber() -> Int
Objective C
- (NSInteger)draggingSequenceNumber
Возвращаемое значение
Число, однозначно определяющее сеанс перетаскивания.
Оператор импорта
Objective C
@import AppKit;
Swift
import AppKit
Доступность
Доступный в OS X v10.0 и позже.
-
Возвращает источник или владельца, перетащенных данных.
Объявление
Swift
func draggingSource() -> AnyObject?
Objective C
- (id)draggingSource
Возвращаемое значение
Источник или владелец, перетащенных данных.
Обсуждение
Этот метод возвраты
nil
если источник не находится в том же приложении как место назначения. Источник перетаскивания реализует методы отNSDraggingSource
протокол.Оператор импорта
Objective C
@import AppKit;
Swift
import AppKit
Доступность
Доступный в OS X v10.0 и позже.
-
Возвращает маску работы перетаскивания источника перетаскивания.
Объявление
Swift
func draggingSourceOperationMask() -> NSDragOperation
Objective C
- (NSDragOperation)draggingSourceOperationMask
Возвращаемое значение
Маска работы перетаскивания, объявляющаяся источником перетаскивания через
NSDraggingSource
draggingSession:sourceOperationMaskForDraggingContext:
(предпочтенный) метод илиNSDraggingSource
draggingSourceOperationMaskForLocal:
метод. Если источник не разрешает операций перетаскивания, этот метод должен возвратитьсяNSDragOperationNone
.Обсуждение
Если источник разрешает перетаскивать операции, элементы в маске один или больше констант, описанных в
“Obtaining Information About the Dragging Session”
, объединенное использование оператора битового «ИЛИ» C.Если пользователь является удержанием модифицирующей клавиши во время сеанса перетаскивания, и источник не мешает модифицирующим клавишам влиять на работу перетаскивания (через
ignoreModifierKeysWhileDragging
метод), тогда операционная система комбинирует значение работы перетаскивания, соответствующее модифицирующей клавише (см. описания ниже) с маской источника с помощью C поразрядная операция И.Модифицирующие клавиши связаны с вариантами работы перетаскивания, показавшими ниже:
Модифицирующая клавиша
Перетаскивание работы
Управление
NSDragOperationLink
Опция
NSDragOperationCopy
Команда
NSDragOperationGeneric
Оператор импорта
Objective C
@import AppKit;
Swift
import AppKit
Доступность
Доступный в OS X v10.0 и позже.
-
Возвращает текущее расположение указателя мыши в основной системе координат окна целевого объекта.
Возвращаемое значение
Текущее расположение указателя мыши в основной системе координат окна целевого объекта.
Оператор импорта
Objective C
@import AppKit;
Swift
import AppKit
Доступность
Доступный в OS X v10.0 и позже.
-
Возвращает целевое окно для работы перетаскивания.
Объявление
Swift
func draggingDestinationWindow() -> NSWindow!
Objective C
- (NSWindow *)draggingDestinationWindow
Возвращаемое значение
Целевое окно для работы перетаскивания.
Обсуждение
Или это окно является местом назначения само, или оно содержит объект представления, который является местом назначения.
Оператор импорта
Objective C
@import AppKit;
Swift
import AppKit
Доступность
Доступный в OS X v10.0 и позже.
-
Устанавливает расположение отбрасывания для обещанных файлов и возвращает имена файлов, которые получатель обещает создать там.
Объявление
Swift
func namesOfPromisedFilesDroppedAtDestination(_
dropDestination
: NSURL) -> [AnyObject]!Параметры
dropDestination
Объект URL указание расположения отбрасывания для обещанных файлов.
Возвращаемое значение
Массив имен файлов, которые не являются полными путями.
Обсуждение
Перетащите места назначения, должен вызвать этот метод в их
performDragOperation:
метод. Источник может или мог не создать файлы к этому времени этот метод возвраты.Оператор импорта
Objective C
@import AppKit;
Swift
import AppKit
Доступность
Доступный в OS X v10.2 и позже.
-
Указывает число допустимых элементов для работы отбрасывания. (требуемый)
Объявление
Swift
var numberOfValidItemsForDrop: Int { get set }
Objective C
@property NSInteger numberOfValidItemsForDrop
Обсуждение
Во время
draggingEntered:
илиdraggingUpdated:
, Вы ответственны за возврат работы перетаскивания. В некоторых случаях можно принять некоторых, но не все элементы на области монтажа перетаскивания. (Например, Ваше приложение может только принять файлы образа.)Если Вы только принимаете некоторые элементы, устанавливаете это свойство в число элементов, принятых, таким образом, менеджер по перетаскиванию может обновить значок количества перетаскивания.
Когда
updateDraggingItemsForDrag:
вызывается, необходимо установить изображение недопустимых элементов перетаскивания кnil
. Если ни один из элементов перетаскивания не допустим тогда, Вы не должныupdateItems:
, просто возвратитесьNSDragOperationNone
от Вашей реализацииdraggingEntered:
и, илиdraggingUpdated:
и не изменяйте никого, перетаскивают свойства элемента.Оператор импорта
Objective C
@import AppKit;
Swift
import AppKit
Доступность
Доступный в OS X v10.7 и позже.
-
Возвращает перетаскиваемое изображение.
Возвращаемое значение
Перетаскиваемое изображение.
Обсуждение
Этот объект изображения визуально представляет данные, ставит область монтажа во время работы перетаскивания; однако, это - данные области монтажа и не это изображение, в конечном счете использующееся в работе перетаскивания.
Этот метод возвращается не -
nil
для локального перетаскивания, ноnil
для межпроцессного перетаскивания. С новыми возможностями перетаскивания мультиизображения межпроцессное место назначения может участвовать и изменить изображение перетаскивания. Но это все еще не может получить текущее изображение перетаскивания.Оператор импорта
Objective C
@import AppKit;
Swift
import AppKit
Доступность
Доступный в OS X v10.0 и позже.
См. также
-
Возвращает текущее расположение источника перетащенного изображения.
Возвращаемое значение
Источник перетащенного изображения, в основной системе координат окна целевого объекта.
Обсуждение
Изображение перемещается вместе с указателем мыши (позицией которого дают
draggingLocation
) но может быть расположен в некоторое смещение.Оператор импорта
Objective C
@import AppKit;
Swift
import AppKit
Доступность
Доступный в OS X v10.0 и позже.
См. также
-
Двигает изображение к указанному расположению.
Объявление
Swift
func slideDraggedImageTo(_
aPoint
: NSPoint)Objective C
- (void)slideDraggedImageTo:(NSPoint)
aPoint
Параметры
aPoint
Точка, указывающая расположение в системе координаты экрана.
Обсуждение
Этот метод может использоваться для корректировки расположения, к которому перетащенное изображение будет скользить назад, если будет отклонено перетаскивание.
Это должно только быть вызвано из реализации места назначения
prepareForDragOperation:
, если место назначения отклонит перетаскивание, и будет только иметь эффект.Этот метод вызывается после того, как пользователь выпустил изображение, но прежде чем это будет удалено из экрана.
Специальные замечания
Этот метод был доступен начиная с OS X v 10.0, однако это не было реализовано до OS X v 10.5. До той версии это ничего не сделало.
Оператор импорта
Objective C
@import AppKit;
Swift
import AppKit
Доступность
Доступный в OS X v10.0 и позже.
-
Возвраты, анимирует ли формирование перетаскивания, в то время как перетаскивание по этому месту назначения. (требуемый)
Объявление
Swift
var animatesToDestination: Bool { get set }
Objective C
@property BOOL animatesToDestination
Обсуждение
Во время заключения принятого перетаскивания, если это свойство установлено в
YES
true
, менеджер по перетаскиванию анимирует каждое изображение перетаскивания к ихNSDraggingFormationNone
расположения. Иначе, изображения перетаскивания удалены без любой анимации.Это свойство проверено между
prepareForDragOperation:
иperformDragOperation:
. Необходимо перечислить через элементы перетаскивания во времяperformDragOperation:
установить элементdraggingFrame
корректным местам назначения.Оператор импорта
Objective C
@import AppKit;
Swift
import AppKit
Доступность
Доступный в OS X v10.7 и позже.
-
В то время как перетаскивание по этому месту назначения, возвращает формирование перетаскивания. (требуемый)
Объявление
Swift
var draggingFormation: NSDraggingFormation { get set }
Objective C
@property NSDraggingFormation draggingFormation
Обсуждение
Установите это свойство для изменения формирования элементов перетаскивания. Это обычно делается во время
updateDraggingItemsForDrag:
метод или каждый раз, когда Вы перечисляете элементы перетаскивания.Значение по умолчанию является текущим формированием перетаскивания.
Оператор импорта
Objective C
@import AppKit;
Swift
import AppKit
Доступность
Доступный в OS X v10.7 и позже.
-
enumerateDraggingItemsWithOptions (_: forView:classes:searchOptions:usingBlock:) - enumerateDraggingItemsWithOptions:forView:classes:searchOptions:usingBlock:
ТребуемыйПеречисляет через каждый элемент перетаскивания. (требуемый)
Объявление
Swift
func enumerateDraggingItemsWithOptions(_
enumOpts
: NSDraggingItemEnumerationOptions, forViewview
: NSView, classesclassArray
: [AnyObject], searchOptionssearchOptions
: [NSObject : AnyObject], usingBlockblock
: (NSDraggingItem!, Int, UnsafeMutablePointer<ObjCBool>) -> Void)Objective C
- (void)enumerateDraggingItemsWithOptions:(NSDraggingItemEnumerationOptions)
enumOpts
forView:(NSView *)view
classes:(NSArray *)classArray
searchOptions:(NSDictionary *)searchOptions
usingBlock:(void (^)(NSDraggingItem *draggingItem, NSInteger idx, BOOL *stop))block
Параметры
enumOpts
Опции перечисления. Посмотрите NSDraggingItemEnumerationOptions для поддерживаемых значений.
view
Представление, используемое в качестве основной системы координат для
NSDraggingItem
экземпляры.classArray
Массив объектов класса.
Классы должны появиться в массиве в порядке предпочтительный порядок представления. Классы в массиве должны соответствовать
NSPasteboardReading
Ссылка на протокол.searchOptions
Словарь, указывающий опции совершенствовать поиск элементов области монтажа, например ограничить поиск для регистрации URLs с определенными типами контента. Для допустимых ключей словаря посмотрите
Pasteboard_Reading_Options
.block
Блок выполнился для перечисления.
Блок берет три параметра:
draggingItem
Ссылка на элемент перетаскивания.
draggingFrame
из перетаскивания элемент находится в координатном пространстве представления, указанного вview
. Aview
значениеnil
означает пространство координаты экрана.idx
Индекс элемента в классах.
stop
Ссылка на булево значение, которое блок может использовать для остановки перечисления путем установки *остановка в
YES
true
; это не должно затрагивать *остановка иначе.Обсуждение
Классы в предоставленном массиве должны реализовать
NSPasteboardReading
протокол. Классы какао, реализующие этот протокол, включаютNSImage
,NSString
,NSURL
,NSColor
,NSAttributedString
, иNSPasteboardItem
. Для каждого элемента на области монтажа каждый класс в предоставленном массиве будет запрошен для типов, это может считать использованиеreadableTypesForPasteboard:
. Экземпляр создается из первого класса, найденного в предоставленном массиве, читаемые типы которого соответствуют соответствующий тип, содержавшийся в том элементе области монтажа. Любые экземпляры, которые могли быть созданы из данных элемента области монтажа, возвращаются к вызывающей стороне. Дополнительные опции, такие как ограничение поиска для регистрации URLs с определенными типами контента, могут быть указаны сoptions
словарь. Только объекты требуемых классов возвращаются. Можно всегда гарантировать для получения одного объекта на элемент на области монтажа включениемNSPasteboardItem
класс в массиве классов.Этот метод перечисляет элементы на области монтажа перетаскивания, связанной с этой информацией перетаскивания, а также всеми дополнительными данными, о которых знает информация перетаскивания. Данные области монтажа и дополнительные данные представлены как одна логическая единица,
NSDraggingItem
экземпляр.Для каждого элемента на области монтажа, каждом классе в
classArray
будет запрошен для типов, это может считать использованиеreadableTypesForPasteboard:
. Экземпляр будет создаваться из первого класса, найденного в предоставленном массиве, читаемые типы которого соответствуют соответствующий тип, содержавшийся в том элементе области монтажа. Если экземпляр создается из данных элемента области монтажа, он помещается вNSDraggingItem
вместе со свойствами перетаскивания того элемента, такими как изображение перетаскивания.NSDraggingItem
экземпляр тогда передается в качестве параметра предоставленному блоку.Оператор импорта
Objective C
@import AppKit;
Swift
import AppKit
Доступность
Доступный в OS X v10.7 и позже.
См. также
– readObjectsForClasses:options:
(Класс NSPasteboard)
-
Эти константы используются
draggingSourceOperationMask
.Объявление
Swift
struct NSDragOperation : RawOptionSetType { init(_
rawValue
: UInt) init(rawValuerawValue
: UInt) static var None: NSDragOperation { get } static var Copy: NSDragOperation { get } static var Link: NSDragOperation { get } static var Generic: NSDragOperation { get } static var Private: NSDragOperation { get } static var Move: NSDragOperation { get } static var Delete: NSDragOperation { get } static var Every: NSDragOperation { get } static var All_Obsolete: NSDragOperation { get } static var All: NSDragOperation { get } }Objective C
enum { NSDragOperationNone = 0, NSDragOperationCopy = 1, NSDragOperationLink = 2, NSDragOperationGeneric = 4, NSDragOperationPrivate = 8, NSDragOperationAll_Obsolete = 15, NSDragOperationMove = 16, NSDragOperationDelete = 32, NSDragOperationEvery = NSUIntegerMax }; typedef NSUInteger NSDragOperation;
Константы
-
Copy
NSDragOperationCopy
Данные, представленные изображением, могут быть скопированы.
Доступный в OS X v10.0 и позже.
-
Link
NSDragOperationLink
Данные могут быть совместно использованы.
Доступный в OS X v10.0 и позже.
-
Generic
NSDragOperationGeneric
Работа может быть определена местом назначения.
Доступный в OS X v10.0 и позже.
-
Private
NSDragOperationPrivate
Работа согласовывается конфиденциально между источником и местом назначения.
Доступный в OS X v10.0 и позже.
-
All_Obsolete
NSDragOperationAll_Obsolete
NSDragOperationAll
постоянный осуждается. ИспользоватьNSDragOperationEvery
вместо этого.Доступный в OS X v10.0 и позже.
Осуждаемый в OS X v10.10.
-
Move
NSDragOperationMove
Данные могут быть перемещены.
Доступный в OS X v10.0 и позже.
-
Delete
NSDragOperationDelete
Данные могут быть удалены.
Доступный в OS X v10.0 и позже.
-
Every
NSDragOperationEvery
Все вышеупомянутые.
Доступный в OS X v10.0 и позже.
-
None
NSDragOperationNone
Никакие не перетаскивают операции, позволяются.
Доступный в OS X v10.0 и позже.
Оператор импорта
Objective C
@import AppKit;
Swift
import AppKit
Доступность
Доступный в OS X v10.0 и позже.
-
-
Эти константы указывают
enumerateDraggingItemsWithOptions:forView:classes:searchOptions:usingBlock:
опции для параметра опций.Объявление
Swift
struct NSDraggingItemEnumerationOptions : RawOptionSetType { init(_
rawValue
: UInt) init(rawValuerawValue
: UInt) static var Concurrent: NSDraggingItemEnumerationOptions { get } static var ClearNonenumeratedImages: NSDraggingItemEnumerationOptions { get } }Objective C
enum { NSDraggingItemEnumerationConcurrent = NSEnumerationConcurrent, NSDraggingItemEnumerationClearNonenumeratedImages = (1UL << 16), }; typedef NSUInteger NSDraggingItemEnumerationOptions;
Константы
-
Concurrent
NSDraggingItemEnumerationConcurrent
Перетаскивание перечисления элемента происходит одновременно.
Доступный в OS X v10.7 и позже.
-
ClearNonenumeratedImages
NSDraggingItemEnumerationClearNonenumeratedImages
Когда следующая опция установлена,
imageComponentsProvider
автоматически установлен вnil
для всех элементов перетаскивания, не встречающих критерии параметров поиска и классы. Эффективно, это скрывает изображение перетаскивания для недопустимых элементов для этого места назначения.Доступный в OS X v10.7 и позже.
Оператор импорта
Objective C
@import AppKit;
Swift
import AppKit
Доступность
Доступный в OS X v10.7 и позже.
-
-
Эти константы управляют визуальным форматом многократных перетаскиваемых элементов.
Объявление
Swift
enum NSDraggingFormation : Int { case Default case None case Pile case List case Stack }
Objective C
enum { NSDraggingFormationDefault = 0, NSDraggingFormationNone, NSDraggingFormationPile, NSDraggingFormationList, NSDraggingFormationStack }; typedef NSInteger NSDraggingFormation;
Константы
-
Default
NSDraggingFormationDefault
Система определила формирование.
Доступный в OS X v10.7 и позже.
-
None
NSDraggingFormationNone
Перетащите изображения, поддерживают их позиции набора относительно каждого другого /
Доступный в OS X v10.7 и позже.
-
Pile
NSDraggingFormationPile
Перетащите изображения, помещаются друг на друга со случайными вращениями.
Доступный в OS X v10.7 и позже.
-
List
NSDraggingFormationList
Перетащите изображения, размечаются вертикально, ненакладывающийся с выровненными левыми краями.
Доступный в OS X v10.7 и позже.
-
Stack
NSDraggingFormationStack
Перетащите изображения, размечаются, накладываясь по диагонали.
Доступный в OS X v10.7 и позже.
Оператор импорта
Objective C
@import AppKit;
Swift
import AppKit
Доступность
Доступный в OS X v10.7 и позже.
-
-
Эти параметры указывают, завершается ли перетаскивание в или вне приложения.
Объявление
Swift
enum NSDraggingContext : Int { case OutsideApplication case WithinApplication }
Objective C
enum { NSDraggingContextOutsideApplication = 0, NSDraggingContextWithinApplication }; typedef NSInteger NSDraggingContext;
Константы
-
OutsideApplication
NSDraggingContextOutsideApplication
Перетаскивание завершается вне приложения.
Доступный в OS X v10.7 и позже.
-
WithinApplication
NSDraggingContextWithinApplication
Перетаскивание завершается в приложении.
Доступный в OS X v10.7 и позже.
Оператор импорта
Objective C
@import AppKit;
Swift
import AppKit
Доступность
Доступный в OS X v10.7 и позже.
-
-
Указывает, что все перетаскивают операции, поддерживаются.
NSDragOperationAll
постоянный был осужден. ИспользоватьNSDragOperationEvery
вместо этого.Объявление
Objective C
#define NSDragOperationAll NSDragOperationAll_Obsolete
Константы
-
NSDragOperationAll
NSDragOperationAll
Использовать
NSDragOperationEvery
вместо этого.Доступный в OS X v10.0 через OS X v10.9.
-