首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在输入UITextField时在UITextField上添加更多的UITextField

在输入UITextField时在UITextField上添加更多的UITextField
EN

Stack Overflow用户
提问于 2013-09-26 12:54:27
回答 2查看 121关注 0票数 0

我是iOS开发的新手。我想根据条件动态地创建UITextFields。条件是,如果我开始在第一个UITextField上输入,它将在底部再创建一个UITextField,并在第二个UITextField上开始键入时创建第三个UITextField。同样,如果上面的UITextField中没有文本,我希望删除底部的文本。任何帮助都将不胜感激..。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-09-26 13:17:34

尝尝这个

步骤:1选择全局中的这个tagCounter变量

代码语言:javascript
复制
 int tagCounter=1;

步骤:2设置您的第一个UITextField标记和代理

代码语言:javascript
复制
 [MyFirstTextField setTag:tagCounter];
 [MyFirstTextField setDelegate:self];
 tagCounter+=1;

步骤:3编写以下两种方法来创建新的textfield和删除textfield

代码语言:javascript
复制
-(void)CreateNewTextField:(float)FromTop withTag:(int)Tag
{
     UITextField *NewTextField=[[UITextField alloc] initWithFrame:CGRectMake(0.0f, FromTop, 100.0f, 40.0f)];
     [NewTextField setDelegate:self];
     [NewTextField setTag:Tag];
     [[self view] addSubview:NewTextField];
}

-(void)RemoveTextField:(int)Tag
{
    for(UIView *sub in [[self view] subviews])
    {
        if([sub isKindOfClass:[UITextField class]])
        {
            if([sub tag]>=Tag)
            {
                [sub removeFromSuperview];
            }
        }
    }
}

步骤:4使用textField委托方法textFieldDidEndEditing创建新的textField并删除textfield

代码语言:javascript
复制
   -(void)textFieldDidEndEditing:(UITextField *)textField
 {
    if([[textField text] isEqualToString:@""])
    {
        int CurrentTag=[textField tag];
        [self RemoveTextField:CurrentTag+1];
    }
    else
    {
        CGRect CurrentTextFieldFrame=[textField frame];
        [self CreateNewTextField:CurrentTextFieldFrame.origin.y+CurrentTextFieldFrame.size.height+20.0f withTag:tagCounter];
        tagCounter+=1;
    }
}
票数 1
EN

Stack Overflow用户

发布于 2013-09-26 13:01:40

这里是关于如何从代码中创建UITextField的教程。

实现它的方式是,添加第一个文本字段,将它的委托设置为self,在textFieldDidBeginEditing:方法中,创建另一个文本字段,设置它的委托,并在它旁边创建一个按钮。如果您想要删除它,我建议为两个UITextField添加相同的标记,它是各自的删除UIButton,然后当按钮被点击时,从superview中删除带有该标记的所有视图。

我建议一步一步地尝试每件事:

  • 从代码创建UITextField
  • 从代码创建UIButton
  • 将标记设置为UIView ( UIButton和UITextField的超类)。
  • 实现UITextField委托方法。
  • 向UIButton添加自定义方法(delete方法)。
  • 基于标记从视图中删除UIView。
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/19028900

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档