Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/macos/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
SwiftUI触地手势启动/触地_Swift_Macos_Swiftui - Fatal编程技术网

SwiftUI触地手势启动/触地

SwiftUI触地手势启动/触地,swift,macos,swiftui,Swift,Macos,Swiftui,我正在为MacOS使用SwiftUI中的Tap手势。再次松开按键时,只有在TouchInsideOut事件中才能识别按键手势。我想在接地时做一个动作,在结束时做另一个动作 有一个onEnded状态可用于点击手势,但没有onStart MyView() .onTapGesture { //Action here only called after tap gesture is released NSLog("Test") } 是否有机会检测触地和触地释放

我正在为MacOS使用SwiftUI中的Tap手势。再次松开按键时,只有在
TouchInsideOut
事件中才能识别按键手势。我想在接地时做一个动作,在结束时做另一个动作

有一个
onEnded
状态可用于点击手势,但没有
onStart

  MyView()
   .onTapGesture {
      //Action here only called after tap gesture is released
      NSLog("Test")
   }
是否有机会检测触地和触地释放


我也尝试过使用
长按手势
,但无法理解

如果是纯SwiftUI,那么现在只能间接地

这里有一个方法。使用Xcode 11.4进行测试

注意:
下面的最小距离:0.0
很重要

MyView()
.手势(DragGesture(最小距离:0.0,坐标空间:。全局)
.onChanged{uuu in
打印(“>>触地”)//此处可能有其他条件
}
.onEnded{uuin

印刷品("它可以工作!!谢谢。我用LongPress做了同样的尝试,但是OnEnd被错误地调用了。谢谢!!!我也在这个视图中使用onHover,但是看起来两者都不工作。当Dragesture在一个视图上时,有什么函数可以调用吗?onDrag?此时我正在设置一个状态,当开始拖动时,然后允许我的操作悬停。但是悬停没有被调用。我需要检查我在拖动过程中是否在视图上悬停。你知道当视图收到这个DragGesture时我可以调用一个函数吗?@davidev,有几个类似的帖子。例如,非常感谢你。你是一位专家。我在这里用你的答案解决了这个问题:
MyView()
    .gesture(DragGesture(minimumDistance: 0.0, coordinateSpace: .global)
        .onChanged { _ in
            print(">> touch down") // additional conditions might be here
        }
        .onEnded { _ in
            print("<< touch up")
        }
    )