我正在尝试在键盘启动时浏览UITextFields。我有一个带有UIScrollView的xib设置,里面有文本字段。当UITextField设置为第一个响应者时,我有contentOffset.y更改。前两个文本字段的反应正常,但在此之后,滚动视图将拍摄选定的文本字段,并且在我获得的列表中越往前越差。我已经设置了NSLog语句和断点,它们向我展示了当我第一次选择文本字段时,使用了正确的y值,但是滚动视图的scrollViewDidScroll方法在多次运行之后直接调用,运行在文本字段之后。
-(void)textFieldDidBeginEditing:(UITextField *)textField{
textField.inputAccessoryView = accessoryBar;
int offset = 30;
[scrollView setContentOffset:CGPointMake(0, textField.frame.origin.y -offset) ];
}
-(void)textFieldDidEndEditing:(UITextField *)textField{
[scrollView setContentOffset:CGPointMake(0, 0)];
}
-(BOOL) textFieldShouldReturn:(UITextField*) textField {
[textField resignFirstResponder];
return YES;
}
我在xcode 4.1 lion上运行iOS 4.3
答案 0 :(得分:0)
也许你的accessoryBar
搞砸了? inputAccessoryView
属性通常是只读的,因此我假设您已经包含UITextField
子类。在没有accessoryBar
的情况下试用您的代码。