美文网首页
SwiftUI 自定义UITextField

SwiftUI 自定义UITextField

作者: fordG | 来源:发表于2020-04-02 10:27 被阅读0次
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 ?? ""
        }
    }
}

相关文章

网友评论

      本文标题:SwiftUI 自定义UITextField

      本文链接:https://www.haomeiwen.com/subject/ceitphtx.html