【问题标题】:SwiftUI TextField does not work after adding gesture添加手势后SwiftUI TextField不起作用
【发布时间】:2020-11-03 21:32:30
【问题描述】:

将组合手势添加到视图后,当我点击视图内的 TextField 以更改文本时,它将不再响应。我在添加自定义组合手势后发现了这一点 - 在拖动之前我使用长按开始操作。 (注意:如果只添加了一个拖动手势,事情仍然有效。不确定这两种情况有什么特别不同。)

组合手势:

let combined = longPressGesture.simultaneously(with: dragGesture)

手势被添加到视图中:

.gesture(combined)

【问题讨论】:

    标签: swiftui textfield


    【解决方案1】:

    我通过将 onTapGesture{} 添加到 TextField 来完成工作。不必在行动中投入任何东西。似乎是一种副作用,其行为可能会在未来发生变化。如果这有意义或其他处理方式,请感谢任何 cmets。

    TextField(“Enter Text”, text: $myText)
                            .textFieldStyle(RoundedBorderTextFieldStyle())
                            .onTapGesture {}
    

    【讨论】:

    • 更新:我有一个水平滚动视图内的文本字段。发现我在 ScrollView 中还有其他一些东西也没有“正确”响应。而是将“空” .onTapGesture{} 添加到 ScrollView 内的 HStack。然后可以从 ScrollView/HStack 中的单个项目中删除它 - 并使代码更清晰。
    【解决方案2】:

    如果在拖动手势时遇到此问题,您可以设置 minimumDistance。这仍然会在文本字段上注册点击以对其进行编辑。

    DragGesture(minimumDistance: 30, coordinateSpace: .global)
    

    Adding a drag gesture in SwiftUI to a View inside a ScrollView blocks the scrolling

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2021-04-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-05-10
      • 1970-01-01
      相关资源
      最近更新 更多