Как получить живые изменения из TextField - PullRequest
1 голос
/ 10 апреля 2020

Я получаю значения из TextField с помощью тегов и действия метода IB. Я могу получить значения, когда после редактирования я нажимаю на тело таблицы.

cell.component.tag = indexPath.row

cell.component.addTarget(self, action: #selector(handleTextViewOther(_:)), for: .editingDidEnd)

Тогда у меня есть метод obj c

 @objc func handleTextViewOther(_ sender: UITextField){

        let indexPath : IndexPath = IndexPath(item: sender.tag, section: 0)

        let cell = tableView.cellForRow(at: indexPath) as! OnlyTextCell
        if let key = cell.displayLabel.text, let val = cell.component.text{
            print ("sender \(key) Field value = \(val)")
        }
    }

Работает, как и ожидалось: После ввода текста в текстовое поле, если я нажимаю снаружи, я получаю правильное значение

Не работает: Если я продолжаю редактировать, и мой фокус находится на текстовом поле, и если я нажму кнопку «Отправить», я не получу последний текст. В части «for» я пробовал несколько комбинаций «всех событий касания» с «didEndEditing», но не повезло

Я исследовал и думаю, что мне нужно textDidChangeNotification

Но в #selector(handleTextViewOther(_:)), for: .editingDidEnd для: не состоит из того, что я ищу. Как пожалуйста?

Или я могу что-нибудь еще сделать?

1 Ответ

1 голос
/ 10 апреля 2020

for: .editingChanged

Глупый я, это решило это!

...