Нет способа напрямую получить, какой объект является текущим первым респондентом (по крайней мере, я знаю), не тестируя их по отдельности.Что вы можете сделать, так это создать метод, содержащий все подпредставления, которые, вероятно, могут быть активным первым респондентом, следующим образом:
- (void)dismissKeyboard {
if (myTextField1.isFirstResponder) {
[myTextField1 resignFirstResponder];
}
else if (myTextField2.isFirstResponder) {
[myTextField2 resignFirstResponder];
}
else if (myTextField3.isFirstResponder) {
[myTextField3 resignFirstResponder];
}
else if (myTextField4.isFirstResponder) {
[myTextField4 resignFirstResponder];
}
}
В действительности, однако, я склонен делать это таким образом, без предварительного тестирования,конкретный UIView является текущим первым респондентом, и не думаю, что есть какие-либо заметные проблемы с производительностью (которые я заметил в любом случае):
- (void)dismissKeyboard {
//Send resignFirstResponder message to all possible first responders...
[myTextField1 resignFirstResponder];
[myTextField2 resignFirstResponder];
[myTextField3 resignFirstResponder];
[myTextField4 resignFirstResponder];
}
Надеюсь, это поможет ...