使用 UI 工具包在 SwiftUI 中创建文本字段。但是,文本显示为溢出。我应该在自定义中添加什么?
struct FirstResponderTextField: UIViewRepresentable {
@Binding var text: String
let placeholder: String
class Coordinator: NSObject, UITextFieldDelegate {
@Binding var text: String
var becameFirstResponder = false
init(text: Binding<String>) {
self ._text = text
}
func textFieldDidChangeSelection(_ textField: UITextField) {
text = textField.text ?? ""
}
}
func makeCoordinator() -> Coordinator {
return Coordinator(text: $text)
}
func makeUIView(context: Context) -> some UIView {
let textField = UITextField()
textField.font = UIFont.systemFont(ofSize: 40, weight: .bold).rounded()
textField.delegate = context.coordinator
textField.placeholder = placeholder
return textField
}
func updateUIView(_ uiView: UIViewType, context: Context) {
if !context.coordinator.becameFirstResponder {
uiView.becomeFirstResponder()
context.coordinator.becameFirstResponder = true
}
}
}
extension UIFont {
func rounded() -> UIFont {
if let descriptor = self.fontDescriptor.withDesign(.rounded) {
let fontSize = self.pointSize
return UIFont(descriptor: descriptor, size: fontSize)
} else {
return self
}
}
}
我是 SwiftUI 的新手,如果有任何意见或反馈,我将不胜感激。

