我是iphone的新手;
我所做的是创建一个带有相应文本字段的10个标签。
当我点击文本字段键盘打开时。
但它涵盖了底部4个文本域。
我无法在这些字段中输入文字。
当我点击键盘屏幕前方的文本字段时,我需要。现在我可以输入这些文本字段了。
我怎么能这样做。
提前感谢你。
答案 0 :(得分:1)
正如Jumhyn写的那样,让UIViewController成为所有文本字段的委托。然后从上到下分配0到9的文本字段标记。然后在控制器中实现以下方法:
- (void)textFieldDidEndEditing:(UITextField *)textField {
self.view.bounds = CGRectOffset(self.view.bounds, 0, textField.tag * 50);
[[self.view viewWithTag: textField.tag + 1] becomeFirstResponder];
}
这个想法是第一行将所有文本字段向上移动,具体取决于编辑的文本字段,在第二行中激活下一个文本字段。您将不得不修改代码以更好地适应您的布局,但它应该为您提供想法。
答案 1 :(得分:0)
使处理文本视图的UIViewController成为UITextFieldDelegate:
@interface TextFieldViewController : UIViewController <UITextFieldDelegate> {
然后在.m文件的textFieldShouldBeginEditing:方法中,添加移动文本字段的代码。例如:
-(BOOL)textFieldShouldBeginEditing:(UITextField *)textField {
myTextField3.frame = CGRectMake(myTextField3.frame.origin.x, myTextField3.frame.origin.y - /*whatever you want to subtract from the y value*/, myTextField3.frame.size.width, myTextField3.frame.size.height);
myTextField4.frame = CGRectMake(myTextField4.frame.origin.x, myTextField4.frame.origin.y - /*whatever you want to subtract from the y value*/, myTextField4.frame.size.width, myTextField4.frame.size.height);
myTextField5.frame = CGRectMake(myTextField5.frame.origin.x, myTextField5.frame.origin.y - /*whatever you want to subtract from the y value*/, myTextField5.frame.size.width, myTextField5.frame.size.height);
myTextField6.frame = CGRectMake(myTextField6.frame.origin.x, myTextField6.frame.origin.y - /*whatever you want to subtract from the y value*/, myTextField6.frame.size.width, myTextField6.frame.size.height);
return YES;
}