// // ChatTextFieldView.swift // SodaLive // // Created by klaus on 10/24/24. // import SwiftUI import UIKit struct ChatTextFieldView: UIViewRepresentable { class Coordinator: NSObject, UITextFieldDelegate { var parent: ChatTextFieldView init(parent: ChatTextFieldView) { self.parent = parent } func textFieldShouldReturn(_ textField: UITextField) -> Bool { // "Send" 버튼이 눌리면 액션 실행 parent.onSend() return true } @objc func textDidChange(_ textField: UITextField) { parent.text = textField.text ?? "" } } @Binding var text: String var placeholder: String var onSend: () -> Void func makeUIView(context: Context) -> UITextField { let textField = UITextField(frame: .zero) textField.delegate = context.coordinator textField.borderStyle = .roundedRect textField.placeholder = placeholder textField.autocorrectionType = .no textField.autocapitalizationType = .none textField.borderStyle = .none textField.backgroundColor = UIColor(hex: "222222") textField.textColor = UIColor(hex: "BBBBBB") textField.tintColor = UIColor(hex: "3BB9F1") textField.font = UIFont(name: Font.medium.rawValue, size: 13.3) textField.returnKeyType = .send textField.addTarget(context.coordinator, action: #selector(Coordinator.textDidChange(_:)), for: .editingChanged) return textField } func updateUIView(_ uiView: UITextField, context: Context) { uiView.text = text } func makeCoordinator() -> Coordinator { return Coordinator(parent: self) } } #Preview { ChatTextFieldView(text: .constant(""), placeholder: "채팅을 입력하세요") {} }