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: Bool
Objective C
@property BOOL animatesToStartingPositionsOnCancelOrFail
Обсуждение
Это свойство должно быть сразу установлено после создания сеанса перетаскивания.
Значение по умолчанию
YES
true
.Оператор импорта
Objective C
@import AppKit;
Swift
import AppKit
Доступность
Доступный в OS X v10.7 и позже.
-
draggingFormation draggingFormation
СвойствоКогда перетаскивание не по источнику или допустимому месту назначения, управляет формированием перетаскивания.
Объявление
Swift
var draggingFormation: NSDraggingFormation
Objective 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)
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)
-
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;
Константы
-
Concurrent
NSDraggingItemEnumerationConcurrent
Указывает, что Блочное перечисление должно быть параллельным.
Порядок вызова недетерминирован и не определен; этот флаг является подсказкой и может быть проигнорирован реализацией при некоторых обстоятельствах; код Блока должен быть безопасным против параллельного вызова.
Доступный в OS X v10.7 и позже.
-
ClearNonenumeratedImages
NSDraggingItemEnumerationClearNonenumeratedImages
Когда следующая опция будет установлена, Набор Приложения автоматически установит
imageComponentProvider
кnil
для всех элементов перетаскивания, не встречающихсяclasses
/searchOptions
критерии метода. Эффективно, это скрывает изображение перетаскивания для недопустимых элементов для этого места назначения.Доступный в OS X v10.7 и позже.
Оператор импорта
Objective C
@import AppKit;
Swift
import AppKit
Доступность
Доступный в OS X v10.7 и позже.
-