代码之家  ›  专栏  ›  技术社区  ›  PEZ

可编辑文本字段的uiTableView列表

  •  3
  • PEZ  · 技术社区  · 16 年前

    我知道这可能不符合苹果iPhone的人机界面指南,但我想摆脱一个层次的推送视图,并有一个可编辑文本字段列表。此外,当视图出现时,我希望键盘从开始就在屏幕上。

    问题是,当我有三个以上这样的字段时,弹出的键盘将覆盖下面的字段。用户无法向下滚动。我想是因为桌面视图是全屏的。我试着把列表做得和它能让键盘一直可见一样高,但没有运气。

    有人知道我该怎么安排才能得到我想要的东西吗?

    2 回复  |  直到 15 年前
        1
  •  2
  •   Brad The App Guy    16 年前

    如果您真的不需要键盘离开,则uiTableView没有理由是全屏的。您可以这样更改帧(其中高度是TableView在其原点和键盘顶部之间将占用的像素数):

    tableview.frame=cDirectmake(0,0320,高度);

        2
  •  1
  •   God of Biscuits    15 年前

    如果您坚持强制用户始终使用如此小的输入区域,您可以通过使用返回键来方便文本输入,还可以通过覆盖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;
        }
    

    此示例将允许用户按顺序输入名称和地址字段,而无需手动将下一个文本字段滚动到视图中,也无需键盘取消和重新显示。