//
|
// LTextField.swift
|
// LiveProject
|
//
|
// Created by 倪路朋 on 7/1/25.
|
//
|
|
|
import SwiftUI
|
|
class LText:ObservableObject{
|
@Published var input = ""
|
|
func update( _ text : String){
|
input = text;
|
}
|
}
|
|
struct LTextField: View {
|
|
var hint:String = "请输入RTMP直播地址";
|
@EnvironmentObject var text:LText;
|
@State var onFocus = false;
|
@FocusState var isfocused:Bool
|
@State var inputType : UIKeyboardType = UIKeyboardType.default;
|
@State var strl = "";
|
var lines = 1;
|
|
var body: some View {
|
|
VStack(alignment: .leading) {// iOS
|
let binding = Binding<String>(get: {
|
//print(self.text.input);
|
return text.input
|
}, set: { str in
|
text.update(str)
|
})
|
|
TextField(hint,text: binding){ change in
|
print(hint+" \(change)")
|
self.onFocus = change
|
} onCommit: {
|
print("onCommit")
|
}
|
.font(Font.system(size: 16))
|
.focused($isfocused)
|
.foregroundColor(Color.colorText)
|
.padding(.leading,24)
|
.padding(.trailing,24)
|
.cornerRadius(12)
|
.frame(height: 60)
|
.keyboardType(inputType)
|
.onSubmit {
|
print("onSubmit")
|
}
|
.overlay(
|
RoundedRectangle(cornerRadius: 12, style: .continuous)
|
.stroke(Color.colorText, lineWidth: 2)
|
)
|
}.frame(minWidth: 0, maxWidth: .infinity, alignment: .topLeading)
|
.onTapGesture {
|
isfocused = true
|
print("Click ATextField button")
|
//textField.focused(SwiftUI.FocusState<Bool>)
|
}
|
}
|
}
|
|
struct LTextField_Previews: PreviewProvider {
|
static var previews: some View {
|
LTextField().environmentObject(LText())
|
}
|
}
|