NSEvent

Panther·2021년 8월 8일
0
post-custom-banner

https://developer.apple.com/documentation/appkit/nsevent

"An object that contains information about an input action, such as a mouse click or a key press."

마우스 클릭 혹은 키 입력과 같은 입력 액션에 대한 정보를 포함하는 객체입니다.

Declaration

class NSEvent : NSObject

Overview

AppKit은 마우스 클릭과 같은 각 사용자 액션을 윈도우와 연결시키고, 윈도우에서 생성된 애플리케이션에 이벤트를 알립니다. NSEvent 객체는 커서의 위치가 어디에 있었는지 혹은 타이핑 된 문자와 같은 각 이벤트에 대한 관련 정보를 포함합니다. 애플리케이션이 이벤트를 받으면 이벤트들을 이벤트 큐라고 부르는 버퍼에 일시적으로 위치시킵니다. 애플리케이션이 이벤트를 처리할 준비가 되면 큐에서 하나씩 꺼냅니다.

NSEvent 객체는 태블릿 포인팅 및 태블릿 프록시미티 이벤트를 나타내기도 합니다. 태블릿 프록시미티 이벤트는 포인팅 기기가 태블릿의 프록시미티에 진입하거나 빠져나올 때 생성됩니다. NSTypeProximity의 타입을 갖는 이벤트 객체 혹은 NSTabletProximityEventSubtype의 마우스 하위타입이 대표적입니다. 태블릿 포인팅 이벤트는 포인팅 기기가 상태를 변경시킬 때 생성되며, 대표적으로 위치, 압력, 기울임과 같은 것이 있습니다. 이와 같은 이벤트 객체는 NSTypePoint의 타입을 갖거나 NSTabletPointEventSubtype의 마우스 하위타입을 갖습니다. AppKitNSResponder 메소드인 tabletPoint(with:), tabletProximity(with:)를 통해 태블릿 이벤트를 리스폰더 객체로 알려줍니다. 마우스 이벤트는 태블릿 데이터(이벤트 하위타입으로써)를 포함할 수 있으며, NSResponder 메소드인 mouseDown(with:), mouseDragged(with:), mouseUp(with:)를 오버라이드 함으로써 이와 같은 이벤트를 처리할 수 있습니다.

NSEvent 객체는 터치 및 제스쳐 이벤트를 나타내기도 합니다. 더 제너릭 형태인 제스쳐 마스크처럼 magnify(핀치), 스와이프, 회전 마스크가 지원됩니다. touches(matching:in:) 메소드를 사용해서 뷰는 개별 터치 리스폰더 메소드(NSResponder에서 정의된)를 오버라이드하지 않고도 제스쳐와 관련이 있는 터치 이벤트 모두를 가져올 수 있습니다.

압력 감지를 지원하는 기기의 경우 압력 이벤트가 지원됩니다. 이 이벤트는 NSEvent.EventType.pressure 이벤트 타입으로써 알려지고, NSresponder에 있는 pressureChange(with:) 리스폰더 메소드 혹은 NSGestureRecognizer에 있는 pressureChange(with:) 리스폰더 메소드를 호출합니다.

NSApplicationsendEvent(_:) 메소드를 통해 전달되는 특정 이벤트 타입에 대해 블록 객체에 있는 핸들러를 호출하는 애플리케이션 이벤트 모니터를 생성할 수도 있습니다. 애플리케이션에서 이벤트 정보를 알릴 로컬 모니터를 생성할 수 있고, 이들을 수정하거나 취소할 수 있습니다. 다른 애플리케이션에서 이벤트를 모니터링(이 이벤트를 바꿀 수는 없을지라도) 할 수 있도록 해주는 글로벌 이벤트 모니터 역시 생성할 수 있습니다. 더 많은 정보는 Monitoring Application Events를 살펴보시기 바랍니다.

연결되는 링크가 이 글과 같습니다

Monitoring Application Events
https://developer.apple.com/documentation/appkit/nsevent#1652040

Topics


Getting Unicode Values

Function-Key Unicodes

키보드에서 기능 키로 예약되는 유니코드 캐릭터(0xF700–0xF8FF)입니다.

https://developer.apple.com/documentation/appkit/nsevent/1535851-function-key_unicodes
https://velog.io/@panther222128/Function-Key-Unicodes


See Also


Mouse, Keyboard, and Touch Events

NSTouch

즉각적인 시점의 특정 터치에 대한 스냅샷입니다.

https://developer.apple.com/documentation/appkit/nstouch
https://velog.io/@panther222128/NSTouch


post-custom-banner

0개의 댓글