57 lines
1.6 KiB
Swift
57 lines
1.6 KiB
Swift
//
|
|
// FocusedTextField.swift
|
|
// SodaLive
|
|
//
|
|
// Created by klaus on 1/9/25.
|
|
//
|
|
|
|
import SwiftUI
|
|
|
|
struct FocusedTextField: UIViewRepresentable {
|
|
@Binding var text: String
|
|
var isFirstResponder: Bool
|
|
|
|
class Coordinator: NSObject, UITextFieldDelegate {
|
|
var parent: FocusedTextField
|
|
|
|
init(_ parent: FocusedTextField) {
|
|
self.parent = parent
|
|
}
|
|
|
|
func textFieldDidChangeSelection(_ textField: UITextField) {
|
|
parent.text = textField.text ?? ""
|
|
}
|
|
}
|
|
|
|
func makeCoordinator() -> Coordinator {
|
|
Coordinator(self)
|
|
}
|
|
|
|
func makeUIView(context: Context) -> UITextField {
|
|
let textField = UITextField()
|
|
textField.delegate = context.coordinator
|
|
textField.font = UIFont(name: Font.medium.rawValue, size: 13.3)
|
|
textField.textColor = UIColor(hex: "eeeeee", alpha: 1.0)
|
|
textField.tintColor = UIColor(hex: "3bb9f1", alpha: 1.0)
|
|
textField.keyboardType = .default
|
|
textField.autocapitalizationType = .none
|
|
textField.autocorrectionType = .no
|
|
|
|
let placeholder = "채널명을 입력해 보세요"
|
|
textField.placeholder = placeholder
|
|
textField.attributedPlaceholder = NSAttributedString(
|
|
string: placeholder,
|
|
attributes: [.foregroundColor: UIColor(hex: "555555", alpha: 1.0)]
|
|
)
|
|
|
|
return textField
|
|
}
|
|
|
|
func updateUIView(_ uiView: UITextField, context: Context) {
|
|
uiView.text = text
|
|
if isFirstResponder {
|
|
uiView.becomeFirstResponder()
|
|
}
|
|
}
|
|
}
|