Существует ли iPhone эквивалент для NSResponder
методов -selectNextKeyView
или -nextValidKeyView
из Mac OS X?Я знаю о методе -becomeFirstResponder
, но выяснение того, какое представление вызывать, не очень красиво, когда иерархии представлений усложняются.
Должен быть какой-то способ выяснить это, как при нажатииВкладка, когда в iPhone Simulator, фокус действительно переходит к следующей UITextField
.Это заставило меня задуматься, что именно происходит, когда я нажимаю клавишу Tab.Любые идеи?
Обновление : Это именно то, что я хочу, но _nextKeyResponder
является частным API, так что нет-нет.Есть ли способ сделать «поддельное» нажатие клавиши табуляции без использования частного API?
- (BOOL)textFieldShouldReturn:(UITextField *)textField {
// Try to find next responder
UIView *nextResponder = (UIView *)[self.view _nextKeyResponder];
if (nextResponder) {
// Found next responder, so set it.
[nextResponder becomeFirstResponder];
[self.tableView scrollRectToVisible:[self.tableView convertRect:[nextResponder frame] fromView:nextResponder] animated:YES];
} else {
// Not found, so remove keyboard.
[textField resignFirstResponder];
}
return NO; // We do not want UITextField to insert line-breaks.
}