Force Touch 트랙패드의 '강력한 클릭' 처리
NSButton
를 강력하게 클릭하는 방법을 보여줍니다.강한 클릭에 해당하는 버튼 만들기
우선, NSButton은 디폴트 상태에서는 강한 클릭을 이용할 수 없기 때문에, 아래와 같이 button type을
MultiLevelAcceleratorButton
(으)로 변경해 강한 클릭을 이용할 수 있도록 설정합니다.button.setButtonType(.MultiLevelAcceleratorButton)
button.maxAcceleratorLevel = 5
여기에서는
maxAcceleratorLevel
를 5
로 설정했지만 클릭 강도를 5 단계 (1 : 보통 ~ 5 : 가장 강한)로 허용합니다. MultiLevelAcceleratorButton
의 경우 기본값은 2
이고 다른 버튼 유형의 경우 1
는 기본값입니다. 1
의 경우 강한 클릭을 수락하지 않습니다.클릭시 힘 레벨을 얻습니다.
강한 클릭은 일반 클릭처럼 target에 대해 action을 실행합니다. 이 때, 클릭중에 강도 레벨이 바뀌면(통상 클릭중에 강하게 밀어 넣는 등), 그 때마다 action이 실행됩니다.
action 중 클릭 강도를 얻으려면
NSButton
의 integerValue
속성을 참조하십시오. 일반 클릭이 발생하면이 값은 1
이고 강한 클릭이 발생하면이 값은 2
이상입니다. 최대값은 maxAcceleratorLevel
로 설정된 값입니다.Force Touch를 지원하지 않는 트랙패드의 모든 클릭은
integerValue
가 1
입니다.데모
아래와 같이 5단계의 클릭을 받아들이고, 그 클릭 레벨을
NSLevelIndicator
에 표시시키는 샘플을 작성해 실행해 보았습니다.import Cocoa
@NSApplicationMain
class AppDelegate: NSObject, NSApplicationDelegate {
@IBOutlet var button: NSButton!
@IBOutlet var indicator: NSLevelIndicator!
func applicationDidFinishLaunching(aNotification: NSNotification) {
button.setButtonType(.MultiLevelAcceleratorButton)
button.maxAcceleratorLevel = 5
}
@IBAction func click(sender: AnyObject?) {
indicator.integerValue = button.integerValue
}
}
데모 애니메이션에서는 좀처럼 전해지기 어렵지만, 버튼을 길게 누르는 동안 밀어넣기를 강하게 하거나 약하게 하고 있습니다.
Reference
이 문제에 관하여(Force Touch 트랙패드의 '강력한 클릭' 처리), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/takebayashi/items/6990013dd8291e7ac04e텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)