0

使用 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 的新手,如果有任何意见或反馈,我将不胜感激。

4

0 回答 0