https://developer.apple.com/documentation/appkit/nstrackingarea
"A region of a view that generates mouse-tracking and cursor-update events when the pointer is over that region."
포인터가 해당 영역에 올려질 때, 마우스 추적 및 커서 업데이트 이벤트를 생성하는 뷰의 영역입니다.
class NSTrackingArea : NSObject
추적 영역 객체 생성 시 (선택적으로) 데이터의 딕셔너리와 함께 사각형(뷰의 좌표 시스템에서)을 구체화해야 하며, 소유 객체, 하나 혹은 하나 이상의 옵션을 구체화해야 합니다. 생성된 후 addTrackingArea(_:)
메소드를 사용해서 뷰에 추적 영역 객체를 추가해야 합니다. 구체화된 옵션에 따라 추적 영역의 소유자는 마우스 커서 진입, 추적 영역 내부에 이동, 빠져나올 때, mouseEntered(with:)
, mouseExited(with:)
, mouseMoved(with:)
, cursorUpdate(with:)
메시지를 받습니다. 현재로써는 추적 영역이 사각형으로 제한됩니다.
NSTrackingArea
객체는 윈도우가 아닌 뷰에 속합니다. 뷰가 윈도우에 추가되었는지를 신경쓸 필요 없이 추적 사각형을 추가하고 제거할 수 있습니다. 더불어 이 디자인은 뷰가 이동할 때나 크기를 변경하는 몇 가지 경우에, AppKit
이 자동으로 추적 영역의 기하를 계산할 수 있도록 합니다.
NSTrackingArea
을 사용해서 마우스 추적을 위한 활동의 범위를 설정할 수 있습니다. 네 가지 옵션이 있습니다.
NSTrackingArea
객체에 대한 다른 옵션은 추적 영역이 뷰(visibleRect
)의 시각적 사각형에 동기화되어야 하는 것을 구체화하는 옵션을 포함하고, 마우스가 드래그될 때 mouseEntered:
, mouseExited:
를 생성하는 것에 대해 동기화되어야 하는 옵션을 포함합니다.
NSTrackingArea
객체(addTrackingArea(_:)
와 더불어)에 관련이 있는 다른 NSView
메소드들은 removeTrackingArea(_:)
, updateTrackingAreas()
를 포함합니다. 특정 경우 뷰는 뷰가 갖는 NSTrackingArea
객체를 다시 계산하거나 교체하기 위해 후자 메소드를 오버라이드 할 수 있습니다. visibleRect
의 크기를 변경시키는 것이 대표적인 경우입니다.
포인터(커서라고도 부르는)입니다.
https://developer.apple.com/documentation/appkit/nscursor
https://velog.io/@panther222128/NSCursor