Swift 2 addObserver для определенного поля UIText с параметром объекта

Я хотел бы вызвать функцию, если был нажат конкретный UITextField: Насколько я понимаю, для уведомлений, которые приходят из окна, работает следующий код:

NSNotificationCenter.defaultCenter().addObserver(self, selector: Selector("keyboardWillShow:"), name: UIKeyboardWillShowNotification, object: nil)
NSNotificationCenter.defaultCenter().addObserver(self, selector: Selector("keyboardWillHide:"), name: UIKeyboardWillHideNotification, object: nil)

Но я хотел бы получить конкретное уведомление от конкретного UITextField. Я безуспешно пробовал следующий код:

NSNotificationCenter.defaultCenter().addObserver(self, selector: Selector("keyboardWillShow:"), name: UITextFieldTextDidBeginEditingNotification, object: textField)
NSNotificationCenter.defaultCenter().addObserver(self, selector: Selector("keyboardWillHide:"), name: UITextFieldTextDidEndEditingNotification, object: textField)

Я много искал и нашел тот же вопрос здесь (Swift 2 addObserver для конкретного textField с параметром объекта), но ответы у меня не сработали.

Я пробую это уже 3 часа... Любая помощь приветствуется, большое спасибо!


person AlexWoe89    schedule 20.02.2016    source источник


Ответы (1)


Вы можете заглянуть в UITextFieldDelegate протокол - там вы найдете решение своей проблемы. Просто установите свой класс в качестве делегата и реализуйте один из методов протокола. Вы можете найти их в документации (например, textFieldShouldBeginEditing). Если у вас есть какие-либо проблемы, не стесняйтесь задавать вопросы.

person kacperh    schedule 20.02.2016
comment
Спасибо за ваш ответ. Предоставляет ли UITextFieldDelegate возможность идентифицировать, если нажато конкретное текстовое поле? Например. У меня есть пять текстовых полей, и я хотел бы вызвать определенную функцию, когда нажимаются только текстовые поля номер 4 и 5? Спасибо, Алекс. - person AlexWoe89; 21.02.2016
comment
Да, в аргументе метода вы получаете textField — так что просто напишите, например: if textField == passwordTextField { } и так далее ;) - person kacperh; 21.02.2016