Как связать действие с кнопкой Go на клавиатуре в iOS?
Действие кнопки "Go" на клавиатуре ios
Ответ 1
Objective-C
Предполагая, что вы используете UITextField, вы можете использовать метод <UITextFieldDelegate>
textFieldShouldReturn
.
- (BOOL)textFieldShouldReturn:(UITextField *)textField
{
[textField resignFirstResponder]; // Dismiss the keyboard.
// Execute any additional code
return YES;
}
Не забудьте назначить класс, в который вы помещаете этот код, в качестве делегата текстового поля.
self.someTextField.delegate = self;
Или, если вы предпочитаете использовать UIControlEvents, вы можете сделать следующее
[someTextField addTarget:self action:@selector(textFieldDidReturn:) forControlEvents:UIControlEventEditingDidEndOnExit];
- (void)textFieldDidReturn:(UITextField *)textField
{
// Execute additional code
}
См. @Wojtek Rutkowski answer, чтобы узнать, как это сделать в Interface Builder.
Swift
UITextFieldDelegate
class SomeViewController: UIViewController, UITextFieldDelegate {
let someTextField = UITextField()
override func viewDidLoad() {
super.viewDidLoad()
someTextField.delegate = self
}
func textFieldShouldReturn(textField: UITextField) -> Bool {
textField.resignFirstResponder() // Dismiss the keyboard
// Execute additional code
return true
}
}
UIControlEvents
class SomeViewController: UIViewController {
let someTextField = UITextField()
override func viewDidLoad() {
super.viewDidLoad()
// Action argument can be Selector("textFieldDidReturn:") or "textFieldDidReturn:"
someTextField.addTarget(self, action: "textFieldDidReturn:", forControlEvents: .EditingDidEndOnExit)
}
func textFieldDidReturn(textField: UITextField!) {
textField.resignFirstResponder()
// Execute additional code
}
}
Ответ 2
Вы можете подключить UITextFiled
событие Did End On Exit
в Connections Inspector
. Он запускается после нажатия Go
/Return
/все, что вы выбираете как Return Key
в Attributes Inspector
.