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!(rect
rect
: NSRect, optionsoptions
: NSTrackingAreaOptions, ownerowner
: AnyObject!, userInfouserInfo
: [NSObject : AnyObject]?)Objective C
- (instancetype)initWithRect:(NSRect)
rect
options:(NSTrackingAreaOptions)options
owner:(id)owner
userInfo:(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 и позже.