【发布时间】:2010-07-13 22:11:04
【问题描述】:
是否有与 Mac OS X 中的 NSResponder 方法 -selectNextKeyView 或 -nextValidKeyView 等效的 iPhone?我知道-becomeFirstResponder 方法,但是当视图层次结构变得更加复杂时,找出调用哪个视图并不是很漂亮。
必须有某种方法可以找出这一点,因为当我在 iPhone 模拟器中按 Tab 时,焦点确实正确转到下一个 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.
}
【问题讨论】:
标签: iphone objective-c cocoa cocoa-touch