https://developer.apple.com/documentation/appkit/nsalignmentfeedbackfilter
"An object that can filter the movement of an object and provides haptic feedback when alignment occurs."
객체의 움직임을 필터링할 수 있고 정렬이 발생했을 때 햅틱 피드백을 제공하는 객체입니다.
class NSAlignmentFeedbackFilter : NSObject
포스 터치 트랙패드를 사용하면 앱은 사용자 액션을 보완하는 택타일 피드백을 제공할 수 있습니다. 만약 앱이 정렬 기능을 구현하고 있다면, 객체 움직임을 필터링하고 적합한 시점에 사용자에게 햅틱 피드백을 제공하는 NSAlignmentFeedbackFilter
클래스를 사용할 수 있습니다. 사용자가 가이드와 함께 정렬에 객체를 드래그하거나 다른 객체를 드래그하면, 사용자는 객체가 위치에 놓여질 때 실제로 물리적 충돌을 느낄 것입니다.
커스텀 정렬 컨트롤러 클래스에 정렬 피드백을 구현하려면 객체의 움직임을 추적하기 위한 이벤트를 받을 수 있도록 클래스를 설정해야 합니다. 이는 NSAlignmentFeedbackFilter
객체의 inputEventMask
값을 일치시키거나 제스쳐 리코그나이저로(NSGestureRecognizer
)부터의 이벤트를 일치시키는 이벤트가 될 수 있습니다. 각 이벤트는 아래의 경우에 받습니다.
NSAlignmentFeedbackFilter
객체의 인스턴스를 생성합니다. 예를 들면 아래와 같습니다.let self.feedbackFilter = NSAlignmentFeedbackFilter()
update(with:)
update(withPanRecognizer:)
alignmentFeedbackTokenForMovement(in:previousPoint:alignedPoint:defaultPoint:)
- 정렬을 위해 객체가 수평 및 수직으로 움직이게 되는 경우입니다.alignmentFeedbackTokenForHorizontalMovement(in:previousX:alignedX:defaultX:)
- 정렬되기 위해 수평으로만 움직이는 경우입니다.alignmentFeedbackTokenForVerticalMovement(in:previousY:alignedY:defaultY:)
- 정렬되기 위해 수직으로만 움직이는 경우입니다.performFeedback(_:performanceTime:)
을 호출합니다. 그러면 객체를 정렬된 위치로 이동시킵니다.null
값이 반환된다면, 시스템은 정렬 및 피드백이 적합하지 않다고 결정합니다. 아마도 커서가 너무 빠르게 움직이거나 정렬된 위치로의 거리가 시각적 스냅을 제공하기에 충분히 크지 않은 경우일 것입니다. 객체를 기본값 위치로 이동시키기 바랍니다.포스 터치 트랙패드를 갖는 시스템에 대한 햅틱 피드백 관리 특성에 접근을 제공하는 객체입니다.
https://developer.apple.com/documentation/appkit/nshapticfeedbackmanager
https://velog.io/@panther222128/NSHapticFeedbackManager