hot*_*aw2 4 macos cocoa trackpad objective-c
如何在 MacBook 触控板上检测两个手指缩放手势?(在选定的 NSView 内)
var zoom:CGFloat = 0
override func magnify(with event: NSEvent) {
super.magnify(with: event)
if(event.phase == .changed){
zoom += event.deltaZ
}else if(event.phase == .began){
zoom = 0//reset
}else if(event.phase == .ended){
//Swift.print("zoom: " + "\(zoom)")
var dir:Int
if(zoom < -100){
Swift.print("zoom out")
dir = 1
}else if(zoom > 100){
Swift.print("zoom in")
dir = -1
}else{
Swift.print("no zoom")
dir = 0
}
}
}
Run Code Online (Sandbox Code Playgroud)
它检测是否发生了缩放手势 +-100 deltaZ (也就是捏合/向外缩放)
有关此方法的更多信息和研究:http :
//eon.codes/blog/2016/02/10/Gesture-research/
有一个NSEventTypeMagnify用于捏合手势的事件类型 ( ),以及用于处理此类事件的NSResponder方法 ( )。-magnifyWithEvent:Cocoa 在这方面与 Cocoa Touch 略有不同;在桌面上,您通常让操作系统为您解释手势,并且您对手势的含义做出响应,而不是尝试识别手势本身。
| 归档时间: |
|
| 查看次数: |
1944 次 |
| 最近记录: |