2

TableView に 2 つの Textfields があります。編集用に選択すると、テキストフィールドが画面の中央に移動します。これが私がすることです:

-(void)textFieldDidBeginEditing:(UITextField *)textField
{
    if(textField == self.nameTextField) {
        [self.tableView scrollToRowAtIndexPath:[NSIndexPath indexPathForRow:0  inSection:0] atScrollPosition:UITableViewScrollPositionMiddle animated:YES];
    }
    else if(textField == self.passwordTextField) {
        [self.tableView scrollToRowAtIndexPath:[NSIndexPath indexPathForRow:1 inSection:0] atScrollPosition:UITableViewScrollPositionMiddle animated:YES];
    }
}

すべて正常に動作していますが、キーボードが開いている場合のみです。Textfield を初めてクリックした場合、またはキーボードを閉じた場合、スクロールが行われません。

誰かが理由を教えてもらえますか、それとも別の解決策がありますか?

どうもありがとう!

4

1 に答える 1

0

textFieldShouldReturn メソッドを試してください。キーボードがダウンしたときに呼び出されます。次のロジックは私にとってはうまくいきます。このメソッドをコードに追加します。

-(BOOL)textFieldShouldReturn:(UITextField *)textField {

[textField resignFirstResponder];
[self.tableView setScrollEnabled:YES];
[self.tableView setContentOffset:CGPointZero animated:NO];
return YES;

}

これがお役に立てば幸いです。

于 2012-11-01T10:28:13.980 に答える