swift - 在 SwiftUI 中基于容器代理设置文本字段的宽度
问题描述
所以我有一个几何代理,它包装了我制作的自定义 UITextField。文本字段的唯一问题是,如果我输入一个长字符串,文本字段的宽度会变大以适应内容大小。我认为最好的方法(我可能是错的)处理这个问题是将它包装在几何阅读器中,然后将文本字段的最大宽度设置为代理的宽度:唯一的问题是我不知道如何访问代理的宽度:
HStack {
GeometryReader { proxy in
TextFieldAlternate(text: self.$bindingVariable)
.padding(.top, 10)
.padding(.leading, 15)
.padding(.bottom, 10)
.cornerRadius(10)
.frame(maxWidth: proxy.bounds.width)
}
}.padding(.horizontal)
.padding(.top, 65)
理想情况下,这与“TextFieldAlternate”只是一个普通的 TextField 时完全一样。我是否以正确的方式思考这个问题?因为我的逻辑是 GeometryReader 将具有与 HStack 相同的尺寸,所以如果我将文本字段的 maxWidth 设置为与 HStack 相同,它就不会变得更大,对吧?
解决方案
推荐阅读
- java - 如何修复测试依赖项中的拆分包?
- java - 使用 openjfx 插件时,Gradle 不会在 Mac 上的 Eclipse 中构建 Java 路径
- azure-devops - 在 Azure Devops 中创建角色用户后将 AzureAD 链接到组织域的影响
- javascript - 在酶中模拟焦点不会改变 document.activeElement
- javascript - 如何实现计数缺失括号?
- node.js - 使用nodejs将数据库(sql server)中的数据保存到全局变量中
- java - 仅当模型存在时才更新 JPA
- awk - 提取第二对引号之间的值
- python - 用于查看今天是否创建文件的 Python 脚本,发送带有结果的电子邮件
- haskell - 有没有办法在 Haskell 中按索引提取字符串?