Runt
2025-07-04 acf8e83cbf106b4350536d54eb46379dd86a623c
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
//
//  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())
    }
}