NSDraggingDestination
NSDraggingDestination
протокол объявляет методы, которые должен реализовать целевой объект (или получатель) перетащенного изображения. Место назначения автоматически получает NSDraggingDestination
сообщения для типов данных области монтажа, для которых это зарегистрировалось как изображение, входят, перемещаются внутри, и затем выходят или выпущены в границах места назначения.
В OS X v10.7 и позже NSDraggingDestination
формальный протокол с обновленным интерфейсом. OS X v10.6 поведение был сохранен, но будет отброшен в будущей версии операционной системы. Методы, которые должны быть осуждены, отмечены как таковые.
Наследование
Не применимый
Оператор импорта
Swift
import AppKit
Objective C
@import AppKit;
Доступность
Доступный в OS X v10.7 и позже.
-
Вызванный, когда перетащенное изображение вводит целевые границы или кадр; делегируйте работу перетаскивания возвратов для выполнения.
Объявление
Swift
optional func draggingEntered(_
sender
: NSDraggingInfo) -> NSDragOperationObjective C
- (NSDragOperation)draggingEntered:(id<NSDraggingInfo>)
sender
Параметры
sender
Объект, отправляющий сообщение; используйте его для получения подробных данных о работе перетаскивания.
Возвращаемое значение
Один (и только один) констант работы перетаскивания, описанных в
NSDragOperation
вNSDraggingInfo
ссылка. Возвращаемое значение по умолчанию (если этот метод не реализован местом назначения) является значением, возвращенным предыдущимdraggingEntered:
сообщение.Обсуждение
Вызванный, когда перетащенное изображение вводит место назначения, но только если место назначения зарегистрировалось для типа данных области монтажа, вовлеченного в работу перетаскивания. В частности этот метод вызывается, когда указатель мыши вводит прямоугольник границ места назначения (если это - объект представления), или его прямоугольник кадра (если это - объект окна).
Этот метод должен возвратить значение, указывающее, который, перетаскивая работу выполнит место назначения, когда будет выпущено изображение. В решении, которое, перетаскивая работу для возврата метод должен оценить перекрытие между обоими операции перетаскивания, позволенные источником (полученный из
sender
сdraggingSourceOperationMask
метод), и операции перетаскивания и типы данных области монтажа место назначения сам поддерживает.Если ни одна из операций не является надлежащей, этот метод должен возвратиться
NSDragOperationNone
(это - ответ по умолчанию, если метод не реализован местом назначения). Место назначения все еще получитdraggingUpdated:
иdraggingExited:
даже еслиNSDragOperationNone
возвращается этим методом.Оператор импорта
Objective C
@import AppKit;
Swift
import AppKit
Доступность
Доступный в OS X v10.0 и позже.
Доступный как часть неофициального протокола до OS X v10.7.
-
Спрашивает целевой объект, хочет ли он получить периодический
draggingUpdated:
сообщения.Объявление
Swift
optional func wantsPeriodicDraggingUpdates() -> Bool
Objective C
- (BOOL)wantsPeriodicDraggingUpdates
Возвращаемое значение
YES
true
если место назначения хочет получить периодическийdraggingUpdated:
сообщения,NO
false
иначе.Обсуждение
Если возвращается место назначения
NO
false
, эти сообщения отправляются только, когда мышь перемещается или флаг модификатора изменения. Иначе место назначения получает поведение по умолчанию, где оно получает периодические обновленные перетаскиванием сообщения, даже если ничто не изменяется.Оператор импорта
Objective C
@import AppKit;
Swift
import AppKit
Доступность
Доступный в OS X v10.4 и позже.
Доступный как часть неофициального протокола до OS X v10.7.
-
Вызываемый периодически, поскольку изображение сохранено в конечной области, позволив модификацию работы перетаскивания или позиции указателя мыши.
Объявление
Swift
optional func draggingUpdated(_
sender
: NSDraggingInfo) -> NSDragOperationObjective C
- (NSDragOperation)draggingUpdated:(id<NSDraggingInfo>)
sender
Параметры
sender
Объект, отправляющий сообщение; используйте его для получения подробных данных о работе перетаскивания.
Возвращаемое значение
Один (и только один) констант работы перетаскивания, описанных в
NSDragOperation
вNSDraggingInfo
ссылка. Возвращаемое значение по умолчанию (если этот метод не реализован местом назначения) является значением, возвращенным предыдущимdraggingEntered:
сообщение.Обсуждение
Для этого, чтобы быть вызванным, место назначения, должно быть, зарегистрировалось для типа данных области монтажа, вовлеченного в работу перетаскивания. Сообщения продолжаются, пока изображение или не выпущено или перетащено из окна или представления.
Этот метод предоставляет месту назначения возможность изменить работу перетаскивания в зависимости от позиции указателя мыши в целевом представлении или объекте окна. Например, у Вас может быть несколько графики или областей текста, содержавшего в том же представлении и желании адаптировать работу перетаскивания или проигнорировать событие перетаскивания полностью, в зависимости от которого объект под указателем мыши в то время, когда разъединения абонентом перетащенное изображение и
performDragOperation:
метод вызывается.Вы обычно исследуете содержание области монтажа в
draggingEntered:
метод, где это исследование выполняется только один раз, а не вdraggingUpdated:
метод, вызывающийся многократно.Только одно место назначения за один раз получает последовательность
draggingUpdated:
сообщения. Если указатель мыши в границах двух перекрывающихся представлений, которые являются оба допустимыми местами назначения, верхнее представление получает эти сообщения, пока изображение или не выпущено или вытащено.Оператор импорта
Objective C
@import AppKit;
Swift
import AppKit
Доступность
Доступный в OS X v10.0 и позже.
Доступный как часть неофициального протокола до OS X v10.7.
-
Реализуйте этот метод, который будет уведомлен, когда работа перетаскивания закончится в некотором другом месте назначения.
Объявление
Swift
optional func draggingEnded(_
sender
: NSDraggingInfo?)Objective C
- (void)draggingEnded:(id<NSDraggingInfo>)
sender
Параметры
sender
Объект, отправляющий сообщение; используйте его для получения подробных данных о работе перетаскивания.
Обсуждение
Этот метод мог бы использоваться местом назначения, делающим авторасширение для разрушений, любой авторасширяется.
Оператор импорта
Objective C
@import AppKit;
Swift
import AppKit
Доступность
Доступный в OS X v10.0 и позже.
Доступный как часть неофициального протокола до OS X v10.7.
-
Вызванный, когда перетащенное изображение выходит из прямоугольника границ места назначения (в случае объекта представления) или его прямоугольника кадра (в случае объекта окна).
Объявление
Swift
optional func draggingExited(_
sender
: NSDraggingInfo?)Objective C
- (void)draggingExited:(id<NSDraggingInfo>)
sender
Параметры
sender
Объект, отправляющий сообщение; используйте его для получения подробных данных о работе перетаскивания.
Оператор импорта
Objective C
@import AppKit;
Swift
import AppKit
Доступность
Доступный в OS X v10.0 и позже.
Доступный как часть неофициального протокола до OS X v10.7.
-
Вызванный, когда изображение выпущено, позволив получателю согласиться на или отказаться, перетаскивают работу.
Объявление
Swift
optional func prepareForDragOperation(_
sender
: NSDraggingInfo) -> BoolObjective C
- (BOOL)prepareForDragOperation:(id<NSDraggingInfo>)
sender
Параметры
sender
Объект, отправляющий сообщение; используйте его для получения подробных данных о работе перетаскивания.
Возвращаемое значение
YES
true
если получатель соглашается выполнить работу перетаскивания иNO
false
если нет.Обсуждение
Этот метод вызывается только если новое
draggingEntered:
илиdraggingUpdated:
сообщение возвратило приемлемое значение перетаскивать-работы.Если Вы хотите, чтобы элементы перетаскивания анимировали от их текущего расположения на экране к их заключительному расположению в Вашем представлении, установите объект отправителя
animatesToDestination
свойство кYES
true
в Вашей реализации этого метода.Оператор импорта
Objective C
@import AppKit;
Swift
import AppKit
Доступность
Доступный в OS X v10.0 и позже.
Доступный как часть неофициального протокола до OS X v10.7.
См. также
-
Вызванный после того, как выпущенное изображение было удалено из экрана, сигнализируя получатель для импорта данных области монтажа.
Объявление
Swift
optional func performDragOperation(_
sender
: NSDraggingInfo) -> BoolObjective C
- (BOOL)performDragOperation:(id<NSDraggingInfo>)
sender
Параметры
sender
Объект, отправляющий сообщение; используйте его для получения подробных данных о работе перетаскивания.
Возвращаемое значение
Если место назначения принимает данные, они возвращаются
YES
true
; иначе это возвращаетсяNO
false
. Значение по умолчанию должно возвратитьсяNO
false
.Обсуждение
Для этого метода, который будет вызван, предыдущее
prepareForDragOperation:
сообщение, должно быть, возвратилосьYES
true
. Место назначения должно реализовать этот метод для выполнения реальной работы импорта данных области монтажа, представленных изображением.Если объект отправителя
animatesToDestination
был установлен вYES
true
вprepareForDragOperation:
, тогда установите любую анимацию для расположения пространства для элементов перетаскивания для анимации к. Также в это время, перечислите через элементы перетаскивания для установки их целевых кадров и конечных изображений.Оператор импорта
Objective C
@import AppKit;
Swift
import AppKit
Доступность
Доступный в OS X v10.0 и позже.
Доступный как часть неофициального протокола до OS X v10.7.
См. также
-
Вызванный, когда работа перетаскивания завершена, сигнализируя получатель для выполнения любой необходимой очистки.
Объявление
Swift
optional func concludeDragOperation(_
sender
: NSDraggingInfo?)Objective C
- (void)concludeDragOperation:(id<NSDraggingInfo>)
sender
Параметры
sender
Объект, отправляющий сообщение; используйте его для получения подробных данных о работе перетаскивания.
Обсуждение
Для этого метода, который будет вызван, предыдущее
performDragOperation:
должно быть, возвратилсяYES
true
.Место назначения реализует этот метод для выполнения любой уборки этого, это должно сделать, такие как обновление его визуального представления теперь, когда это включило перетащенные данные. Это сообщение является последним сообщением, отправленным от
sender
месту назначения во время сеанса перетаскивания.Если
sender
объектanimatesToDestination
свойство было установлено вYES
true
вprepareForDragOperation:
, тогда изображение перетаскивания все еще видимо. В этой точке необходимо нарисовать заключительное визуальное представление в представлении. Когда этот метод возвращается, изображение перетаскивания удалено, формируют экран. Если Ваше заключительное визуальное представление соответствует визуальное представление в перетаскивании, это - бесшовный переход.Оператор импорта
Objective C
@import AppKit;
Swift
import AppKit
Доступность
Доступный в OS X v10.0 и позже.
Доступный как часть неофициального протокола до OS X v10.7.
-
Вызванный, когда должны быть изменены изображения перетаскивания.
Объявление
Swift
optional func updateDraggingItemsForDrag(_
sender
: NSDraggingInfo?)Objective C
- (void)updateDraggingItemsForDrag:(id<NSDraggingInfo>)
sender
Параметры
sender
Объект, отправляющий сообщение; используйте этот объект получить подробные данные о работе перетаскивания.
Обсуждение
В то время как место назначения может изменить изображения перетаскивания в любое время, рекомендуется ожидать, пока этот метод не вызывают прежде, чем обновить изображения перетаскивания.
Это позволяет системе задерживать изменение изображений перетаскивания, пока не вероятно, что пользователь отбросит на этом месте назначения. Иначе, изображения перетаскивания будут изменяться слишком часто во время перетаскивания, которое было бы недовольно пользователю.
Во время
enumerateDraggingItemsWithOptions:forView:classes:searchOptions:usingBlock:
можно установить неприемлемые изображения элементов перетаскивания вnil
скрыть их или использовать опцию перечисленияNSDraggingItemEnumerationClearNonenumeratedImages
Если существуют элементы, которые Вы скрываете, то после перечисления, необходимо установитьnumberOfValidItemsForDrop
к числу нескрытых элементов перетаскивания. Однако, если допустимое количество элемента0
, тогда лучше возвратитьсяNSDragOperationNone
от Вашей реализацииdraggingEntered:
и, илиdraggingUpdated:
вместо того, чтобы скрыться все перетаскивают элементы во время перечисления.Оператор импорта
Objective C
@import AppKit;
Swift
import AppKit
Доступность
Доступный в OS X v10.7 и позже.