参考自BBCo
struct MyTextField:UIViewRepresentable{
let placeholder:String?
@Binding var text:String
@Binding var showText:Bool
let onCommit:()->Void
init(placeholder:String? = nil,
text:Binding<String>,
showText:Binding<Bool>,
onCommit:@escaping ()->Void = {}
){
self.placeholder = placeholder
self._text = text
self._showText = showText
self.onCommit = onCommit
}
func makeCoordinator() -> Coordinator {
Coordinator(view: self)
}
class Coordinator:NSObject,UITextFieldDelegate{
let parent:MyTextField
init(view:MyTextField) {
parent = view
}
func textFieldDidBeginEditing(_ textField: UITextField) {
print("开始输入")
}
func textFieldShouldClear(_ textField: UITextField) -> Bool {
print("textFieldShouldClear")
return true
}
func textFieldShouldReturn(_ textField: UITextField) -> Bool {
print("收起键盘")
textField.endEditing(true)
parent.onCommit()
return true
}
func textField(_ textField: UITextField, shouldChangeCharactersIn range: NSRange, replacementString string: String) -> Bool {
//if return true ,can update ,if return false cannot update
print(string)
print(range)
if string == "\n"{
textField.endEditing(true)
print("string == \n *********************** ")
}
return true
}
}
func makeUIView(context: Context) -> UITextField {
let view = UITextField()
view.setContentCompressionResistancePriority(.defaultLow, for: .horizontal)
view.textColor = .black
view.tintColor = .black
view.text = text
view.placeholder = placeholder
view.adjustsFontSizeToFitWidth = true
view.borderStyle = .none
view.delegate = context.coordinator
view.clearButtonMode = .whileEditing
view.clearsOnBeginEditing = true
return view
}
func updateUIView(_ uiView: UITextField, context: Context) {
uiView.isSecureTextEntry = !showText
print("updateUIView**************************** ")
}
}
swiftui 自定义 textfield
©著作权归作者所有,转载或内容合作请联系作者
- 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
- 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
- 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
推荐阅读更多精彩内容
- TextFieldStyle 在考虑自定义之前,我们应该考虑SwiftUI提供什么。TextField有自己的风格...
- 我想和您谈谈SwiftUI中的TextField组件。它看起来像是基础教程,但TextField具有令人兴奋的功能...
- 本篇文章是记录下自己学习的内容 , 代码比较low,请各位大神多多指教 效果为 主要实现方法: 实现下划线。重写d...
- 版本记录 版本号时间V1.02020.01.10 星期五 前言 今天翻阅苹果的API文档,发现多了一个框架Swif...
- 版本记录 版本号时间V1.02020.01.10 星期五 前言 今天翻阅苹果的API文档,发现多了一个框架Swif...