可编辑文本字段的UITableView列表

时间:2008-12-22 19:55:35

标签: iphone cocoa-touch

我知道它可能不符合Apple的iPhone人机界面指南,但我希望摆脱一级推送视图并拥有可编辑文本字段列表。此外,我希望键盘在视图出现时从头开始显示在屏幕上。

问题是当我有三个以上这样的字段时,弹出键盘将覆盖下面的字段。并且用户无法向下滚动到它们。我认为这是因为桌面视图是全屏的。我试图将列表设置为高度,因为它可以让键盘始终可见,但没有运气。

任何人都知道如何安排事情以获得我想要的东西?

2 个答案:

答案 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;
    }

此示例将允许用户输入名称和字段的字段。按顺序地址,无需手动将下一个文本字段滚动到视图中,也不会使键盘消失并重新出现。