Задать вопрос

Почему не срабатывают события UITextField?

Дано: новичок в swift'e и некоторые элементы ui kit'a, такие как UISlider, UISwitch, UIButton,
на которые навешаны экшены, и отрабатывают они вполне себе так, как и задумаывается:

@IBAction func buttonTapped(_ sender: Any) {
        print("Btn pressed")
    }
    
    @IBAction func switchToggled(_ sender: UISwitch) {
        if sender.isOn {
            print("Is on")
        } else {
            print("Is off")
        }
    }
    
    @IBAction func sliderValueChanged(_ sender: UISlider) {
        print(sender.value)
    }


То есть при нажатии/изменении элементов я вижу вывод в консоли, все в порядке.

Но, при попытке добавить в storyboard UITextField, первое, что выдает консоль это
2018-01-18 22:13:40.103544+0300 HelloWorld[15291:6366835] [MC] Lazy loading NSBundle MobileCoreServices.framework
2018-01-18 22:13:40.103752+0300 HelloWorld[15291:6366835] [MC] Loaded MobileCoreServices.framework


а при навешанном на него экшне valueChanged (в прочем, как и любом другом)
@IBAction func textChanged(_ sender: UITextField) {
        if let text = sender.text {
            print(text)
        }
    }

тап по этому филду выдает
2018-01-18 22:13:55.220045+0300 HelloWorld[15291:6366835] [MC] System group container for systemgroup.com.apple.configurationprofiles path is /Users/avkvak/Library/Developer/CoreSimulator/Devices/95AB0DE5-0684-4995-BA3F-BFA625D17A15/data/Containers/Shared/SystemGroup/systemgroup.com.apple.configurationprofiles
2018-01-18 22:13:55.220596+0300 HelloWorld[15291:6366835] [MC] Reading from private effective user settings.

в консоль ничего не выводится

Наглядно
В чем беда и где я не прав? Заранее спасибо
  • Вопрос задан
  • 245 просмотров
Подписаться 2 Простой Комментировать
Решения вопроса 1
doublench21
@doublench21 Куратор тега Swift
Это потому, что событие valueChanged не применимо к UITextField. Для этих целей существует UITextFieldDelegate. Или, если ты не знаешь что это такое, то просто посмотри внимательно, там есть такие события как Editing Changed/Did Begin/Did End(в том же списке, где ты и выбрал valueChanged).
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы