当前位置: 首页 > 面试题库 >

SwiftUI-UITextField中的状态更改导致frameWidth不受控制地增长,并且忽略了边界/框架

徐学潞
2023-03-14
问题内容

我正在使用SwiftUI并桥接到UITextField(我需要分配firstResponder)。我使用以下代码:SwiftUI:如何使TextField成为第一响应者?

以下代码更新了我的@Binding
var。这当然是预期的行为。问题在于,这将导致textField忽略框架/边界。它只是扩展并将其他元素推出视图。视图的其他部分也依赖于@State。

func textFieldDidChangeSelection(_ textField: UITextField) {
            text = textField.text ?? ""
}

如何更新@State并仍将textField保留在框架中?


问题答案:

您需要降低内容抵抗的优先级makeUIView(这样内容就不会推送SwiftUI中设置的外部布局),如下所示

func makeUIView(context: UIViewRepresentableContext<MyField>) -> UITextField {
    let field = UITextField(frame: .zero)
    field.setContentCompressionResistancePriority(.defaultLow, for: .horizontal)
    ...


 类似资料:
  • 我正在编写一个具有多个视图的iOS应用程序。我已经将应用程序设置为使用基于ViewController的状态栏样式,这允许我使用以下代码 这就像预期的那样。 然后我将视图嵌入到导航控制器中,并将Barbuttonite与showSegue连接起来。此后,视图的ViewController切换为忽略样式设置,并显示默认的黑色状态栏。

  • 问题内容: 我有一堂课,里面也有变量。有时我想忽略某些字段,有时在反序列化时不想忽略(也许也在序列化时)。在Jackson怎么办? 问题答案: 对于序列化,“ 过滤属性 ”博客条目应该会有所帮助。反序列化方面的支持较少,因为更常见的是要过滤掉所写的内容。 一种可能的方法是子类化,重写使方法(和/或字段)具有可忽略性的方法,以使用所需的任何逻辑。 如果您举了一个实际应用的例子,这也可能会有所帮助,即

  • 问题内容: 我有一个简单的react组件,其形式相信可以控制一个输入: 运行我的应用程序时,出现以下警告: 警告:MyForm正在更改要控制的文本类型的不受控制的输入。输入元素不应从不受控制切换为受控制(反之亦然)。确定在组件的使用寿命中使用受控或非受控输入元素 我相信我的输入是有价值的,因此受到控制。我想知道我在做什么错? 我正在使用React 15.1.0 问题答案: 我相信我的输入是有价值的

  • 我实现了一个按钮,将图形保存到png文件中。该图形是通过以下方式创建的: 当我点击保存按钮时,执行以下代码: 由于某些原因,轴和绘图标题从最终绘图中省略。但是它们没有被裁剪-在图形周围有一个边界黑框,它是空白的(见下文) 无论我如何尝试,更改figsize、dpi、边界框等,我都无法使用轴标签保存图形。

  • 问题内容: 我在尝试创建一个使用React选择和取消选择其他单个复选框(全选/全选)的复选框时遇到了一个小问题。我已阅读http://facebook.github.io/react/docs/forms.html,发现 受控 和 非受控 s 之间存在差异。我的测试代码如下: “全局选择器”按预期方式工作:选中后,将选中所有其他检查。问题在于,当单击其他复选框之一时,不会触发处理程序。 我不知道进

  • 我有一个点在,一个框在。作为几何体,