NSAlignmentFeedbackFilter

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

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

"An object that can filter the movement of an object and provides haptic feedback when alignment occurs."

객체의 움직임을 필터링할 수 있고 정렬이 발생했을 때 햅틱 피드백을 제공하는 객체입니다.

Declaration

class NSAlignmentFeedbackFilter : NSObject

Overview

포스 터치 트랙패드를 사용하면 앱은 사용자 액션을 보완하는 택타일 피드백을 제공할 수 있습니다. 만약 앱이 정렬 기능을 구현하고 있다면, 객체 움직임을 필터링하고 적합한 시점에 사용자에게 햅틱 피드백을 제공하는 NSAlignmentFeedbackFilter 클래스를 사용할 수 있습니다. 사용자가 가이드와 함께 정렬에 객체를 드래그하거나 다른 객체를 드래그하면, 사용자는 객체가 위치에 놓여질 때 실제로 물리적 충돌을 느낄 것입니다.

Implementing Alignment Feedback

커스텀 정렬 컨트롤러 클래스에 정렬 피드백을 구현하려면 객체의 움직임을 추적하기 위한 이벤트를 받을 수 있도록 클래스를 설정해야 합니다. 이는 NSAlignmentFeedbackFilter 객체의 inputEventMask 값을 일치시키거나 제스쳐 리코그나이저로(NSGestureRecognizer)부터의 이벤트를 일치시키는 이벤트가 될 수 있습니다. 각 이벤트는 아래의 경우에 받습니다.

  1. NSAlignmentFeedbackFilter 객체의 인스턴스를 생성합니다. 예를 들면 아래와 같습니다.
let self.feedbackFilter = NSAlignmentFeedbackFilter()
  1. 이벤트에 대한 정렬 피드백 필터 객체를 알려줍니다. 이렇게 하려면 아래 메소드 중 하나를 호출해야 합니다.
    • update(with:)
    • update(withPanRecognizer:)
  2. 이벤트에 대한 응답으로 움직이기 전에 객체의 위치를 저장합니다. 객체의 이전 위치로 간주됩니다.
  3. 이벤트에 대한 응답으로 객체를 새 위치에 이동시킵니다. 이 위치는 객체가 정렬이 발생하지 않는 경우 놓여지는 위치입니다.
  4. 객체의 새 위치를 저장합니다. 이는 객체의 기본값 위치로 간주됩니다.
  5. 객체가 정렬되기 위해 이동할 곳을 결정합니다. 이는 객체의 정렬된 위치로 간주됩니다.
  6. 이전 위치, 기본값 위치, 정렬된 위치에 기반하는 피드백 토큰을 요청합니다. 이렇게 하려면 아래 메소드 중 한 가지를 호출해야 합니다.
    • alignmentFeedbackTokenForMovement(in:previousPoint:alignedPoint:defaultPoint:) - 정렬을 위해 객체가 수평 및 수직으로 움직이게 되는 경우입니다.
    • alignmentFeedbackTokenForHorizontalMovement(in:previousX:alignedX:defaultX:) - 정렬되기 위해 수평으로만 움직이는 경우입니다.
    • alignmentFeedbackTokenForVerticalMovement(in:previousY:alignedY:defaultY:) - 정렬되기 위해 수직으로만 움직이는 경우입니다.
  7. 피드백 토큰이 성공적으로 준비되면 햅틱 피드백을 수행하기 위해 performFeedback(_:performanceTime:)을 호출합니다. 그러면 객체를 정렬된 위치로 이동시킵니다.

    만약 피드백 토큰이 아닌 null 값이 반환된다면, 시스템은 정렬 및 피드백이 적합하지 않다고 결정합니다. 아마도 커서가 너무 빠르게 움직이거나 정렬된 위치로의 거리가 시각적 스냅을 제공하기에 충분히 크지 않은 경우일 것입니다. 객체를 기본값 위치로 이동시키기 바랍니다.

See Also


Haptics

NSHapticFeedbackManager

포스 터치 트랙패드를 갖는 시스템에 대한 햅틱 피드백 관리 특성에 접근을 제공하는 객체입니다.

https://developer.apple.com/documentation/appkit/nshapticfeedbackmanager
https://velog.io/@panther222128/NSHapticFeedbackManager


post-custom-banner

0개의 댓글