Определить, когда текстовое поле было нажато в быстром - PullRequest
0 голосов
/ 03 июля 2018

Я хочу выполнить действие при нажатии определенного текстового поля. Я пытался

func textFieldDidBeginEditing(_ textField: UITextField) {

    if textField == myTextField {
        print("pressed")
    }
}

но это не сработало для меня. У кого-нибудь есть какие-нибудь решения? Спасибо

1 Ответ

0 голосов
/ 03 июля 2018

Эта функция является обратным вызовом из UITextFieldDelegate. Но он будет запущен только в том случае, если класс с этим подключен к делегату вашего UITextField.

простой Пример с использованием iOS ViewController:

class yourViewController: UIViewController, UITextFieldDelegate
{
    /* Make sure that your variable 'myTextField' was created using an IBOutlet from your storyboard*/
    @IBOutlet var myTextField : UITextField!

    override func ViewDidLoad()
    {
         super.viewDidLoad()
         myTextField.delegate = self // here you set the delegate so that UITextFieldDelegate's callbacks like textFieldDidBeginEditing respond to events
    }



    func textFieldDidBeginEditing(_ textField: UITextField) {

    if textField == myTextField {
    print("pressed")
        }
    }

}

Убедитесь, что вы понимаете концепцию обработки событий шаблона делегирования и то, как делегат захватывает и публикует события, подобные этому, например. Многие компоненты Cocoa GUI используют этот дизайн. Вот некоторые полезные ссылки.

https://docs.swift.org/swift-book/LanguageGuide/Protocols.html

https://developer.apple.com/documentation/uikit/uitextfielddelegate

http://www.andrewcbancroft.com/2015/03/26/what-is-delegation-a-swift-developers-guide/

...