Постоянная проверка текста в textField


#1

Хотел написать программку для себя (развлекаюсь), которая шифрует текст. Сама программа сейчас до боли простая
-На экране textField, Label, Button
-Вводим текст и по нажатию на кнопку уже зашифрованный текст появляется в label.
Но, это сейчас так.

Как я бы хотел сделать:
-первый textField для ввода на родном языке, а второй для шифра(можно сразу вводить шифр и код будет переделывать на родной), а кнопка только для копирования в буфер.

Для примера можно предоставить 2 варианта:

Google translate - сервис автоматом подбирает перевод походу ввода слова.
Playground in Xcode - автоматически постоянно компилирует написаный код
Вопросы:
Как сделать перевод по нажатию на клавиатуру, а не по кнопке? т.е. чтобы код работал постоянно, проверяя текст. Или как сделать постоянную проверку текста в textField?


#2

Проще использовать NSTextView вместо NSTextField. Тогда можно использовать Notification для контроля изменений текста в NSTextView.

NotificationCenter.default.addObserver(self, selector: #selector(myController.myFunctionForEncryption(_:)), name:NSText.didChangeNotification, object: myTextView)


#3

В textField надо реализовать метод func textField(_ textField: UITextField, shouldChangeCharactersIn range: NSRange, replacementString string: String) -> Bool

А сам ViewController подписать под протокол UITextFieldDelegate


#4

Ещё можете создать action от вашего textField с Event: Editing Changed.


А внутри вызывать функцию шифрования/расшифровки.


Ошибка Thread 1: signal SIGABRT, не запусакет в симуляторе