カスタム セルを含むグループ化されたテーブル ビューがあり、これらのセルにはUITextField
. returnKeyType
テキスト フィールドの をUIReturnKeyNext
(最後の行を除いて) に設定し、そのtextFieldShouldReturn:
メソッドを次のように実装しました。
- (BOOL)textFieldShouldReturn:(UITextField *)textField
{
id firstResponderCell = textField.superview.superview ;
NSInteger firstResponderRow = [self.tableView indexPathForCell:firstResponderCell].row ;
NSIndexPath* nextCellIndexPath = [NSIndexPath indexPathForRow:firstResponderRow+1 inSection:0] ;
CustomCell* nextCell = (CustomCell*)[self.tableView cellForRowAtIndexPath:nextCellIndexPath] ;
if (nextCell) {
[nextCell.cellTextField becomeFirstResponder] ;
}
else
[textField resignFirstResponder] ;
return YES ;
}
しかし、現在アクティブなテキスト フィールドをキーボードの上に表示するために、テーブル ビューのコンテンツをスクロールすることはできません。キーボードに「次へ」ボタン機能を実装せず、「Enter」ボタンをタップするとキーボードが非表示になり、別のテキストフィールドをタップするとキーボードが再び表示されたときに、これを正常に管理しました。UIKeyboardDidShowNotification
とUIKeyboardDidHideNotification
。しかし、キーボードに「次へ」ボタンが必要で、ボタンをタップしてもキーボードが非表示にならないため、アクティブなテキストフィールドに適切にスクロールする方法がわかりません。
前もって感謝します