NSTrackingArea
NSTrackingArea объект определяет область представления, генерирующего события отслеживания мыши и обновления курсора, когда мышь по той области.
При создании объекта области отслеживания Вы указываете прямоугольник (в системе координат представления), объект владения и одна или более опций, вместе с (дополнительно) словарем данных. Как только это создается, Вы добавляете объект области отслеживания к представлению с помощью addTrackingArea: метод. В зависимости от указанных опций владелец области отслеживания получает mouseEntered:, mouseExited:, mouseMoved:, и cursorUpdate: сообщения, когда курсор мыши входит, перемещаются в и оставляют область отслеживания. В настоящее время область отслеживания ограничивается прямоугольниками.
NSTrackingArea объект принадлежит своему представлению, а не его окну. Следовательно, можно добавить и удалить прямоугольники отслеживания, не будучи должен волноваться, было ли представление добавлено к окну. Кроме того, этот проект позволяет Набору Приложения вычислить геометрию отслеживания областей автоматически, когда представление перемещается и, в некоторых случаях, когда представление изменяет размер.
С NSTrackingArea, можно сконфигурировать объем действия для отслеживания мыши. Существует четыре опции:
Область отслеживания активна только, когда представление является первым респондентом.
Когда представление находится в ключевом окне, область отслеживания активна.
Когда приложение активно, область отслеживания активна.
Область отслеживания всегда активна (даже когда приложение неактивно).
Другие опции для NSTrackingArea объекты включают указание, что область отслеживания должна синхронизироваться с видимым прямоугольником представления (visibleRect) и для генерации mouseEntered: и mouseExited: события, когда перетаскивается мышь.
Прочее. NSView методы имели отношение к NSTrackingArea объекты (в дополнение к addTrackingArea:) включать removeTrackingArea: и updateTrackingAreas. Представления могут переопределить последний метод, чтобы повторно вычислить и заменить их NSTrackingArea объекты в определенных ситуациях, таких как изменение в размере visibleRect.
Соответствует
-
AnyObject -
CVarArgType -
Сопоставимый -
Hashable -
NSCoding -
NSCopying -
NSObjectProtocol -
Печатаемый -
NSCoding -
NSCopying -
NSObject
Оператор импорта
Swift
import AppKit
Objective C
@import AppKit;
Доступность
Доступный в OS X v10.5 и позже.
-
Инициализирует и возвращает объект, определяющий область представления для получения отслеживающих мышь событий, перемещенных в мышь событий, событий обновления курсора, или возможно всех этих событий.
Объявление
Swift
init!(rectrect: NSRect, optionsoptions: NSTrackingAreaOptions, ownerowner: AnyObject!, userInfouserInfo: [NSObject : AnyObject]?)Objective C
- (instancetype)initWithRect:(NSRect)rectoptions:(NSTrackingAreaOptions)optionsowner:(id)owneruserInfo:(NSDictionary *)userInfoПараметры
rectПрямоугольник, определяющий область целевого представления, в системе координат представления, для отслеживания событий, связанных с отслеживанием мыши и обновлением курсора. Указанный прямоугольник не должен превышать прямоугольник границ представления.
optionsОдна или более констант, указывающих тип отслеживания области, ситуации, когда областью являются активные, и специальные способы поведения области отслеживания. См. описание
NSTrackingAreaOptionsи связанные константы для подробных данных. Необходимо указать одну или более опций для инициализированного объекта, в частности тип отслеживания области; нуль не является допустимым значением.ownerОбъект получить требуемое отслеживание мыши, перемещенное в мышь, или сообщения обновления курсора. Это должно не обязательно быть представление, связанное с создаваемым
NSTrackingAreaобъект, но должен быть объект, способный к ответу кNSResponderметодыmouseEntered:,mouseExited:,mouseMoved:, иcursorUpdate:.userInfoСловарь, содержащий произвольные данные для каждого вводимого в мышь, вышедшего мышью, и событие обновления курсора. При обработке такого события можно получить словарь путем отправки
userDataкNSEventобъект. (Словарь не доступен для перемещенных в мышь событий.) Этот параметр может бытьnil.Возвращаемое значение
Недавно инициализированный объект области отслеживания.
Обсуждение
После создания и инициализации
NSTrackingAreaобъект с этим методом, необходимо добавить его к целевому представлению с помощьюaddTrackingArea:метод. Когда изменения в представлении требуют изменений в геометрии его областей отслеживания, Набор Приложения вызываетupdateTrackingAreas. Представление должно реализовать этот метод для замены токаNSTrackingAreaобъект с одним с повторно вычисленной областью.Специальные замечания
Начинаясь с OS X v10.5,
initWithRect:options:owner:userInfo:, вместе сaddTrackingArea:методNSView, заменитеNSViewметодaddTrackingRect:owner:userData:assumeInside:.Оператор импорта
Objective C
@import AppKit;Swift
import AppKitДоступность
Доступный в OS X v10.5 и позже.
См. также
-
Возвращает опции, указанные для получателя.
Объявление
Swift
var options: NSTrackingAreaOptions { get }Objective C
@property(readonly) NSTrackingAreaOptions optionsОбсуждение
Опции для
NSTrackingAreaкогда объект создается, объект указан. Чтобы определить, имеет ли определенная опция силу, выполните ПОРАЗРЯДНУЮ ОПЕРАЦИЮ И сNSTrackingAreaOptionsпостоянный и значение возвратился из этого метода, например:if ([trackingAreaObj options] & NSTrackingInVisibleRect != 0) {// do something appropriate}
Оператор импорта
Objective C
@import AppKit;Swift
import AppKitДоступность
Доступный в OS X v10.5 и позже.
-
Возвращает объект, владеющий получателем, который является получателем отслеживания мыши, движения мыши и сообщений обновления курсора.
Объявление
Swift
unowned(unsafe) var owner: AnyObject! { get }Objective C
@property(readonly, assign) id ownerОператор импорта
Objective C
@import AppKit;Swift
import AppKitДоступность
Доступный в OS X v10.5 и позже.
-
Возвращает прямоугольник, определяющий область, охваченную получателем.
Обсуждение
Прямоугольник указан в системе локальной координаты связанного представления. если
NSTrackingInVisibleRectопция указана, получатель автоматически синхронизируется с изменениями в видимой области представления (visibleRect) и значение, возвращенное из этого метода, проигнорировано.Оператор импорта
Objective C
@import AppKit;Swift
import AppKitДоступность
Доступный в OS X v10.5 и позже.
-
Возвращает словарь, содержащий данные, связанные с получателем, когда это создавалось.
Объявление
Swift
var userInfo: [NSObject : AnyObject]? { get }Objective C
@property(readonly, copy) NSDictionary *userInfoОбсуждение
Возвраты
nilкогда получатель был инициализирован, если не были указаны никакие данные. Можно получить этот словарь на событие в каждомmouseEntered:иmouseExited:метод путем запросов переданного - вNSEventобъект с [[событие trackingArea]userData].Оператор импорта
Objective C
@import AppKit;Swift
import AppKitДоступность
Доступный в OS X v10.5 и позже.
Типы данных
-
Тип данных, определенный для констант, указанных в
optionsпараметрinitWithRect:options:owner:userInfo:. Эти константы описаны ниже; можно указать многократные константы путем выполнения работы битового «ИЛИ» с ними.Объявление
Swift
struct NSTrackingAreaOptions : RawOptionSetType { init(_rawValue: UInt) init(rawValuerawValue: UInt) static var MouseEnteredAndExited: NSTrackingAreaOptions { get } static var MouseMoved: NSTrackingAreaOptions { get } static var CursorUpdate: NSTrackingAreaOptions { get } static var ActiveWhenFirstResponder: NSTrackingAreaOptions { get } static var ActiveInKeyWindow: NSTrackingAreaOptions { get } static var ActiveInActiveApp: NSTrackingAreaOptions { get } static var ActiveAlways: NSTrackingAreaOptions { get } static var AssumeInside: NSTrackingAreaOptions { get } static var InVisibleRect: NSTrackingAreaOptions { get } static var EnabledDuringMouseDrag: NSTrackingAreaOptions { get } }Objective C
typedef NSUInteger NSTrackingAreaOptions;Оператор импорта
Objective C
@import AppKit;Swift
import AppKitДоступность
Доступный в OS X v10.5 и позже.
