import SwiftUI
/*
MyTextField(text: $password, placeholder: "请输入登录密码!")
.frame(height: 40)
}.frame(height: 40).offset(x: 10, y: 0)
可点击相应区域比TextField大
*/
struct MyTextField: UIViewRepresentable {
@Binding var text: String
var placeholder: String
func makeUIView(context: Context) -> UITextField {
let textField = UITextField()
textField.delegate = context.coordinator
return textField
}
func updateUIView(_ uiView: UITextField, context: Context) {
uiView.text = text
uiView.placeholder = placeholder
}
func makeCoordinator() -> MyTextField.MYTFCoordinator{
return MYTFCoordinator($text, placeholder: placeholder, textField: self)
}
class MYTFCoordinator: NSObject, UITextFieldDelegate {
var text: Binding<String>
var placeholder: String
var textField: MyTextField
init(_ text: Binding<String>, placeholder: String = "", textField: MyTextField) {
self.text = text
self.placeholder = placeholder
self.textField = textField
}
func textFieldDidChangeSelection(_ textField: UITextField) {
text.wrappedValue = textField.text ?? ""
}
}
}
网友评论