NSTrackingArea

Panther·2021년 8월 8일
0

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."

포인터가 해당 영역에 올려질 때, 마우스 추적 및 커서 업데이트 이벤트를 생성하는 뷰의 영역입니다.

Declaration

class NSTrackingArea : NSObject

Overview

추적 영역 객체 생성 시 (선택적으로) 데이터의 딕셔너리와 함께 사각형(뷰의 좌표 시스템에서)을 구체화해야 하며, 소유 객체, 하나 혹은 하나 이상의 옵션을 구체화해야 합니다. 생성된 후 addTrackingArea(_:) 메소드를 사용해서 뷰에 추적 영역 객체를 추가해야 합니다. 구체화된 옵션에 따라 추적 영역의 소유자는 마우스 커서 진입, 추적 영역 내부에 이동, 빠져나올 때, mouseEntered(with:), mouseExited(with:), mouseMoved(with:), cursorUpdate(with:) 메시지를 받습니다. 현재로써는 추적 영역이 사각형으로 제한됩니다.

NSTrackingArea 객체는 윈도우가 아닌 뷰에 속합니다. 뷰가 윈도우에 추가되었는지를 신경쓸 필요 없이 추적 사각형을 추가하고 제거할 수 있습니다. 더불어 이 디자인은 뷰가 이동할 때나 크기를 변경하는 몇 가지 경우에, AppKit이 자동으로 추적 영역의 기하를 계산할 수 있도록 합니다.

NSTrackingArea을 사용해서 마우스 추적을 위한 활동의 범위를 설정할 수 있습니다. 네 가지 옵션이 있습니다.

  • 뷰가 첫 번째 리스폰더일 때에만 추적 영역을 활성화합니다.
  • 뷰가 키 윈도우에 있을 때에만 추적 영역을 활성화합니다.
  • 애플리케이션이 활성화일 때에만 추적 영역을 활성화합니다.
  • 추적 영역을 항상 활성화 합니다(애플리케이션이 비활성화일지라도).

NSTrackingArea 객체에 대한 다른 옵션은 추적 영역이 뷰(visibleRect)의 시각적 사각형에 동기화되어야 하는 것을 구체화하는 옵션을 포함하고, 마우스가 드래그될 때 mouseEntered:, mouseExited:를 생성하는 것에 대해 동기화되어야 하는 옵션을 포함합니다.

NSTrackingArea 객체(addTrackingArea(_:)와 더불어)에 관련이 있는 다른 NSView 메소드들은 removeTrackingArea(_:), updateTrackingAreas()를 포함합니다. 특정 경우 뷰는 뷰가 갖는 NSTrackingArea 객체를 다시 계산하거나 교체하기 위해 후자 메소드를 오버라이드 할 수 있습니다. visibleRect의 크기를 변경시키는 것이 대표적인 경우입니다.

See Also


Cursors

NSCursor

포인터(커서라고도 부르는)입니다.

https://developer.apple.com/documentation/appkit/nscursor
https://velog.io/@panther222128/NSCursor


0개의 댓글