trackEvents(matching:timeout:mode:handler:)
Tracks events that match the specified mask using the specified tracking handler until the tracking handler explicitly terminates tracking.
Declaration
func trackEvents(matching mask: NSEvent.EventTypeMask, timeout: TimeInterval, mode: RunLoop.Mode, handler trackingHandler: (NSEvent?, UnsafeMutablePointer<ObjCBool>) -> Void)Parameters
- mask:
The event mask (see
NSEventMaskin Nsevent for possible values). - timeout:
The maximum time interval the system waits for an event before passing
nilto the handler. - mode:
The run loop mode.
- trackingHandler:
A block that is called to track the events. The block takes the following parameters:
- event
The event to examine.
- stop
A Boolean value that indicates when tracking should stop.
Discussion
You can use this method in a tracking loop to get pressure events when you add pressure to the event mask. This method returns when tracking terminates.
Each event is removed from the event queue and then passed to the tracking handler. If a matching event does not exist in the event queue, the main thread blocks in the specified runloop mode until an event of the requested type is received or the specified timeout expires. If the timeout expires, the tracking handler is called with a nil event (a negative timeout is interpreted as 0). Use NSEventDurationForever to prevent timing out. Tracking continues until you set stop to true. Note that calls to nextEvent(matching:) are allowed inside the trackingHandler block.