Force Touch 트랙패드의 '강력한 클릭' 처리

3751 단어 MacOSXSwift코코아
Force Touch 트랙패드는 "강한 클릭"작업을 지원합니다. 이 섹션에서는 NSButton를 강력하게 클릭하는 방법을 보여줍니다.

강한 클릭에 해당하는 버튼 만들기



우선, NSButton은 디폴트 상태에서는 강한 클릭을 이용할 수 없기 때문에, 아래와 같이 button type을 MultiLevelAcceleratorButton (으)로 변경해 강한 클릭을 이용할 수 있도록 설정합니다.
button.setButtonType(.MultiLevelAcceleratorButton)
button.maxAcceleratorLevel = 5

여기에서는 maxAcceleratorLevel5로 설정했지만 클릭 강도를 5 단계 (1 : 보통 ~ 5 : 가장 강한)로 허용합니다. MultiLevelAcceleratorButton의 경우 기본값은 2이고 다른 버튼 유형의 경우 1는 기본값입니다. 1의 경우 강한 클릭을 수락하지 않습니다.

클릭시 힘 레벨을 얻습니다.



강한 클릭은 일반 클릭처럼 target에 대해 action을 실행합니다. 이 때, 클릭중에 강도 레벨이 바뀌면(통상 클릭중에 강하게 밀어 넣는 등), 그 때마다 action이 실행됩니다.

action 중 클릭 강도를 얻으려면 NSButtonintegerValue 속성을 참조하십시오. 일반 클릭이 발생하면이 값은 1이고 강한 클릭이 발생하면이 값은 2 이상입니다. 최대값은 maxAcceleratorLevel로 설정된 값입니다.

Force Touch를 지원하지 않는 트랙패드의 모든 클릭은 integerValue1입니다.

데모



아래와 같이 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
    }
}



데모 애니메이션에서는 좀처럼 전해지기 어렵지만, 버튼을 길게 누르는 동안 밀어넣기를 강하게 하거나 약하게 하고 있습니다.

좋은 웹페이지 즐겨찾기