2016-10-04 4 views
1

Force touch를 지원하는 OSX 앱을 개발 중입니다.NSTextField - force-touch 만 사용하여 편집 허용, 코코아

기본적으로 NSTextField의 동작을 편집 가능으로 설정하면 사용자가 두 번 클릭하거나 강제 터치를 사용하여 편집을 시작할 수 있습니다.

사용자가 Force Touch로만 편집을 시작할 수 있도록하고 싶습니다. 어떻게 처리 할 수 ​​있습니까?

답변

0

하위 클래스 NSTextField 및 pressureChange(with:)을 재정의하십시오. 그런 다음 압력 수준에 대해 event.stage을 확인하십시오 (정확한 값은 event.pressure). event.stage가 2이면 강제 터치입니다.

@available(macOS 10.10.3, *) 
override func pressureChange(with event: NSEvent) { 

    if event.stage == 2, !self.isEditable { 
     self.isEditable = true 
     self.selectText(self) 
    } 
}