56 lines
		
	
	
		
			1.6 KiB
		
	
	
	
		
			Swift
		
	
	
	
	
	
			
		
		
	
	
			56 lines
		
	
	
		
			1.6 KiB
		
	
	
	
		
			Swift
		
	
	
	
	
	
//
 | 
						||
//  CustomTextField.swift
 | 
						||
//  VolnahubApp
 | 
						||
//
 | 
						||
//  Created by cheykrym on 11/06/2025.
 | 
						||
//
 | 
						||
 | 
						||
import SwiftUI
 | 
						||
 | 
						||
struct CustomTextField: UIViewRepresentable {
 | 
						||
    class Coordinator: NSObject, UITextFieldDelegate {
 | 
						||
        var parent: CustomTextField
 | 
						||
 | 
						||
        init(_ parent: CustomTextField) {
 | 
						||
            self.parent = parent
 | 
						||
        }
 | 
						||
 | 
						||
        func textFieldShouldReturn(_ textField: UITextField) -> Bool {
 | 
						||
            parent.onReturn()
 | 
						||
            return false // предотвращаем автоматический переход на новую строку
 | 
						||
        }
 | 
						||
 | 
						||
        @objc func textFieldDidChange(_ textField: UITextField) {
 | 
						||
            parent.text = textField.text ?? ""
 | 
						||
        }
 | 
						||
    }
 | 
						||
 | 
						||
    var placeholder: String
 | 
						||
    @Binding var text: String
 | 
						||
    var isSecure: Bool = false
 | 
						||
    var onReturn: () -> Void
 | 
						||
 | 
						||
    func makeUIView(context: Context) -> UITextField {
 | 
						||
        let textField = UITextField()
 | 
						||
        textField.placeholder = placeholder
 | 
						||
        textField.delegate = context.coordinator
 | 
						||
        textField.borderStyle = .roundedRect
 | 
						||
        textField.autocapitalizationType = .none
 | 
						||
        textField.autocorrectionType = .no
 | 
						||
        textField.isSecureTextEntry = isSecure
 | 
						||
        textField.returnKeyType = .next
 | 
						||
        textField.addTarget(context.coordinator, action: #selector(Coordinator.textFieldDidChange(_:)), for: .editingChanged)
 | 
						||
        return textField
 | 
						||
    }
 | 
						||
 | 
						||
    func updateUIView(_ uiView: UITextField, context: Context) {
 | 
						||
        if uiView.text != text {
 | 
						||
            uiView.text = text
 | 
						||
        }
 | 
						||
    }
 | 
						||
 | 
						||
    func makeCoordinator() -> Coordinator {
 | 
						||
        Coordinator(self)
 | 
						||
    }
 | 
						||
}
 |