Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/objective-c/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 删除文本字段时出现问题_Ios_Objective C_Uitextfield - Fatal编程技术网

Ios 删除文本字段时出现问题

Ios 删除文本字段时出现问题,ios,objective-c,uitextfield,Ios,Objective C,Uitextfield,我有两个按钮用于添加和删除文本字段。添加工作正常,但当我单击delete时,它只删除最后添加的文本字段。以下是我的两种方法: -(void)addTextField { keyTextField = [[UITextField alloc] initWithFrame:CGRectMake(10, yAxisDistance, 150, 30)]; keyTextField.borderStyle = UITextBorderStyleRoundedRect; keyTe

我有两个按钮用于添加和删除文本字段。添加工作正常,但当我单击delete时,它只删除最后添加的文本字段。以下是我的两种方法:

-(void)addTextField {
    keyTextField = [[UITextField alloc] initWithFrame:CGRectMake(10, yAxisDistance, 150, 30)];
    keyTextField.borderStyle = UITextBorderStyleRoundedRect;
    keyTextField.placeholder = @"Key Value";
    keyTextField.delegate = self;
    [self.view addSubview:keyTextField];

    valueTextField = [[UITextField alloc] initWithFrame:CGRectMake(165, yAxisDistance, 150, 30)];
    valueTextField.borderStyle = UITextBorderStyleRoundedRect;
    valueTextField.placeholder = @"Value";
    valueTextField.delegate = self;
    [self.view addSubview:valueTextField];
    yAxisDistance = yAxisDistance+35;
}

-(void)deleteTextField {
    [keyTextField removeFromSuperview];
    [valueTextField removeFromSuperview];
    yAxisDistance = yAxisDistance-35;
}

我知道这是一个小问题,但我对这个领域非常陌生,所以请帮助。

使用此代码从UIView中删除特定的文本字段。但首先,在视图中创建或添加UITextField时,必须设置视图中每个UITextField的标记

for ( UITextField* textField in view.subviews ) 
{
    if(textField.tag== 1)
    {
          [textField removeFromSuperview];
    }
}

使用此代码从UIView中删除特定的文本字段。但首先,在视图中创建或添加UITextField时,必须设置视图中每个UITextField的标记

for ( UITextField* textField in view.subviews ) 
{
    if(textField.tag== 1)
    {
          [textField removeFromSuperview];
    }
}

使用此代码从UIView中删除特定的文本字段。但首先,在视图中创建或添加UITextField时,必须设置视图中每个UITextField的标记

for ( UITextField* textField in view.subviews ) 
{
    if(textField.tag== 1)
    {
          [textField removeFromSuperview];
    }
}

使用此代码从UIView中删除特定的文本字段。但首先,在视图中创建或添加UITextField时,必须设置视图中每个UITextField的标记

for ( UITextField* textField in view.subviews ) 
{
    if(textField.tag== 1)
    {
          [textField removeFromSuperview];
    }
}

对不起,当时我不明白你的问题

我完成了这个: 申报

NSMutableArray*allTextfieldArray

并在

viewdidload

方法。。 现在做:


对不起,当时我不明白你的问题

我完成了这个: 申报

NSMutableArray*allTextfieldArray

并在

viewdidload

方法。。 现在做:


对不起,当时我不明白你的问题

我完成了这个: 申报

NSMutableArray*allTextfieldArray

并在

viewdidload

方法。。 现在做:


对不起,当时我不明白你的问题

我完成了这个: 申报

NSMutableArray*allTextfieldArray

并在

viewdidload

方法。。 现在做:


将最后一个文本字段存储在变量keyTextField和valueTextField中。因此,当您调用deleteTextField时,最后两个字段都将被删除。您必须跟踪要删除的文本文件

例如,您可以在创建所有文本字段时为其指定一个标记号: 首先创建一个int作为计数器:

@implementation YourClass {
    int tagcounter;
}
在init方法中设置计数器:

tagcounter = 0;
在addTextField中:

keyTextField.tag = tagcounter++;
valueTextField.tag = tagcounter++;
点击delete按钮时,您必须知道textfield标记并将其传递给deleteTextField方法。在那里,您可以执行以下操作:

-(void)deleteTextFieldWithTag:(int)tagnumber {
for (UIView *view in [self.view subviews])
{
    if ([view isKindOfClass:[UITextField class]])
    {
        if (view.tag == tagnumber || view.tag == tagnumber+1) {
            [view removeFromSuperview];
    }
}
}

将最后一个文本字段存储在变量keyTextField和valueTextField中。因此,当您调用deleteTextField时,最后两个字段都将被删除。您必须跟踪要删除的文本文件

例如,您可以在创建所有文本字段时为其指定一个标记号: 首先创建一个int作为计数器:

@implementation YourClass {
    int tagcounter;
}
在init方法中设置计数器:

tagcounter = 0;
在addTextField中:

keyTextField.tag = tagcounter++;
valueTextField.tag = tagcounter++;
点击delete按钮时,您必须知道textfield标记并将其传递给deleteTextField方法。在那里,您可以执行以下操作:

-(void)deleteTextFieldWithTag:(int)tagnumber {
for (UIView *view in [self.view subviews])
{
    if ([view isKindOfClass:[UITextField class]])
    {
        if (view.tag == tagnumber || view.tag == tagnumber+1) {
            [view removeFromSuperview];
    }
}
}

将最后一个文本字段存储在变量keyTextField和valueTextField中。因此,当您调用deleteTextField时,最后两个字段都将被删除。您必须跟踪要删除的文本文件

例如,您可以在创建所有文本字段时为其指定一个标记号: 首先创建一个int作为计数器:

@implementation YourClass {
    int tagcounter;
}
在init方法中设置计数器:

tagcounter = 0;
在addTextField中:

keyTextField.tag = tagcounter++;
valueTextField.tag = tagcounter++;
点击delete按钮时,您必须知道textfield标记并将其传递给deleteTextField方法。在那里,您可以执行以下操作:

-(void)deleteTextFieldWithTag:(int)tagnumber {
for (UIView *view in [self.view subviews])
{
    if ([view isKindOfClass:[UITextField class]])
    {
        if (view.tag == tagnumber || view.tag == tagnumber+1) {
            [view removeFromSuperview];
    }
}
}

将最后一个文本字段存储在变量keyTextField和valueTextField中。因此,当您调用deleteTextField时,最后两个字段都将被删除。您必须跟踪要删除的文本文件

例如,您可以在创建所有文本字段时为其指定一个标记号: 首先创建一个int作为计数器:

@implementation YourClass {
    int tagcounter;
}
在init方法中设置计数器:

tagcounter = 0;
在addTextField中:

keyTextField.tag = tagcounter++;
valueTextField.tag = tagcounter++;
点击delete按钮时,您必须知道textfield标记并将其传递给deleteTextField方法。在那里,您可以执行以下操作:

-(void)deleteTextFieldWithTag:(int)tagnumber {
for (UIView *view in [self.view subviews])
{
    if ([view isKindOfClass:[UITextField class]])
    {
        if (view.tag == tagnumber || view.tag == tagnumber+1) {
            [view removeFromSuperview];
    }
}
}

我认为问题在于出口。你能检查一下吗

  • 打开连接到IB中文本字段的插座。编辑器左侧圆圈内应有灰色圆点。它们对两个文本字段都正确吗

  • deleteTextField
    方法中设置断点,并检查两个文本字段。验证这两个属性都不是nil


  • PS:你不需要在视图中添加标签,使用属性是非常好的,在我看来甚至更好。你问题的原因是别的。另外,您不需要从SuperView中删除,也可以设置隐藏:是。

    我认为问题在于插座。你能检查一下吗

  • 打开连接到IB中文本字段的插座。编辑器左侧圆圈内应有灰色圆点。它们对两个文本字段都正确吗

  • deleteTextField
    方法中设置断点,并检查两个文本字段。验证这两个属性都不是nil


  • PS:你不需要在视图中添加标签,使用属性是非常好的,在我看来甚至更好。你问题的原因是别的。另外,您不需要从SuperView中删除,也可以设置隐藏:是。

    我认为问题在于插座。你能检查一下吗

  • 打开连接到IB中文本字段的插座。编辑器左侧圆圈内应有灰色圆点。它们对两个文本字段都正确吗

  • deleteTextField
    方法中设置断点,并检查两个文本字段。验证这两个属性都不是nil

  • PS:你不需要在视图中添加标签,使用属性是非常好的,在我看来甚至更好。你问题的原因是别的。也,