NSDraggingSession
NSDraggingSession класс охватывает действие перетаскивания и позволяет модификацию перетаскивания, в то время как происходящий.
Вы запускаете новый сеанс перетаскивания путем вызова NSView метод beginDraggingSessionWithItems:event:source: метод. Этот метод сразу возвращается, и можно далее изменить свойства сеанса перетаскивания. Фактическое перетаскивание начинается в следующем повороте цикла выполнения.
Оператор импорта
Swift
import AppKit
Objective C
@import AppKit;
Доступность
Доступный в OS X v10.7 и позже.
-
draggingPasteboard draggingPasteboardСвойствоВозвращает объект области монтажа, содержащий перетаскиваемые данные. (только для чтения)
Объявление
Swift
var draggingPasteboard: NSPasteboard! { get }Objective C
@property(readonly) NSPasteboard *draggingPasteboardОператор импорта
Objective C
@import AppKit;Swift
import AppKitДоступность
Доступный в OS X v10.7 и позже.
-
Средства управления, анимирует ли изображение перетаскивания назад к его начальной точке на отмененном или неработающем, перетаскивают.
Объявление
Swift
var animatesToStartingPositionsOnCancelOrFail: BoolObjective C
@property BOOL animatesToStartingPositionsOnCancelOrFailОбсуждение
Это свойство должно быть сразу установлено после создания сеанса перетаскивания.
Значение по умолчанию
YEStrue.Оператор импорта
Objective C
@import AppKit;Swift
import AppKitДоступность
Доступный в OS X v10.7 и позже.
-
draggingFormation draggingFormationСвойствоКогда перетаскивание не по источнику или допустимому месту назначения, управляет формированием перетаскивания.
Объявление
Swift
var draggingFormation: NSDraggingFormationObjective C
@property NSDraggingFormation draggingFormationОбсуждение
Установка этого значения заставляет формирование перетаскивания сразу измениться, если допустимое место назначения не переопределило поведение. Если сеанс перетаскивания еще не запустился, элементы перетаскивания анимируют в формирование непосредственно после запуска. Это настоятельно рекомендовано, чтобы никогда изменить формирование при запуске перетаскивания.
Значение по умолчанию
NSDraggingFormationNone.Оператор импорта
Objective C
@import AppKit;Swift
import AppKitДоступность
Доступный в OS X v10.7 и позже.
-
Возвращает число, однозначно определяющее сеанс перетаскивания. (только для чтения)
Объявление
Swift
var draggingSequenceNumber: Int { get }Objective C
@property(readonly) NSInteger draggingSequenceNumberОператор импорта
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)enumOptsforView:(NSView *)viewclasses:(NSArray *)classArraysearchOptions:(NSDictionary *)searchOptionsusingBlock:(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Ссылка на булево значение, которое блок может использовать для остановки перечисления путем установки *остановка в
YEStrue; это не должно затрагивать *остановка иначе.Обсуждение
Классы в предоставленном массиве должны реализовать
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)
-
draggingLocation draggingLocationСвойствоТекущая позиция курсора перетаскивания в координатах экрана. (только для чтения)
Объявление
Swift
var draggingLocation: NSPoint { get }Objective C
@property(readonly) NSPoint draggingLocationОператор импорта
Objective C
@import AppKit;Swift
import AppKitДоступность
Доступный в OS X v10.7 и позже.
-
draggingLeaderIndex draggingLeaderIndexСвойствоИндекс элемента перетаскивания под курсором.
Обсуждение
Индекс к элементу в массиве, переданном как первый параметр
NSViewметодbeginDraggingSessionWithItems:event:source:.Значение по умолчанию
NSDraggingItemсамый близкий кlocationполе в конечном счете параметр, переданныйbeginDraggingSessionWithItems:event:source:метод.Оператор импорта
Objective C
@import AppKit;Swift
import AppKitДоступность
Доступный в OS X v10.7 и позже.
-
Следующие константы указывают опции перечисления, используемые в
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;Константы
-
ConcurrentNSDraggingItemEnumerationConcurrentУказывает, что Блочное перечисление должно быть параллельным.
Порядок вызова недетерминирован и не определен; этот флаг является подсказкой и может быть проигнорирован реализацией при некоторых обстоятельствах; код Блока должен быть безопасным против параллельного вызова.
Доступный в OS X v10.7 и позже.
-
ClearNonenumeratedImagesNSDraggingItemEnumerationClearNonenumeratedImagesКогда следующая опция будет установлена, Набор Приложения автоматически установит
imageComponentProviderкnilдля всех элементов перетаскивания, не встречающихсяclasses/searchOptionsкритерии метода. Эффективно, это скрывает изображение перетаскивания для недопустимых элементов для этого места назначения.Доступный в OS X v10.7 и позже.
Оператор импорта
Objective C
@import AppKit;Swift
import AppKitДоступность
Доступный в OS X v10.7 и позже.
-
