我知道它可能不符合Apple的iPhone人机界面指南,但我希望摆脱一级推送视图并拥有可编辑文本字段列表。此外,我希望键盘在视图出现时从头开始显示在屏幕上。
问题是当我有三个以上这样的字段时,弹出键盘将覆盖下面的字段。并且用户无法向下滚动到它们。我认为这是因为桌面视图是全屏的。我试图将列表设置为高度,因为它可以让键盘始终可见,但没有运气。
任何人都知道如何安排事情以获得我想要的东西?
答案 0 :(得分:2)
如果您真的永远不需要键盘离开,UITableView没有理由全屏。您可以像这样更改框架(其中HEIGHT是tableview将在其原点和键盘顶部之间占据的像素数):
tableView.frame = CGRectMake(0,0,320,HEIGHT);
答案 1 :(得分:1)
如果你坚持强迫用户一直使用如此小的输入区域,你可以通过重写UITextEditDelegate方法使返回键自动跳转到下一个文本输入字段来促进文本输入:
- (BOOL)textFieldShouldReturn:(UITextField *)textField
{
if ( textField == self.firstNameField )
{
[self.lastNameField becomeFirstResponder];
}
else if ( textField == self.lastNameField )
{
[self.addressField becomeFirstResponder];
}
else if ( textField == self.addressField )
{
[self.cityField becomeFirstResponder];
}
else if ( textField == self.cityField )
{
[self.stateField becomeFirstResponder];
}
else if ( textField == self.stateField )
{
[self.zipcodeField becomeFirstResponder];
}
else if ( textField == self.zipcodeField )
{
[textField resignFirstResponder];
[self.scrollView scrollRectToVisible:self.firstNameField.frame animated:YES];
}
return YES;
}
此示例将允许用户输入名称和字段的字段。按顺序地址,无需手动将下一个文本字段滚动到视图中,也不会使键盘消失并重新出现。