在包含错误的UITextfield周围添加红色边框

3

我正在使用Objective-C制作一个表单。我将填写的所有数据发布到Web服务中,如果一切顺利并且数据成功发布,则会返回200代码。但是如果有错误,则会返回406代码。如果出现错误,则JSON也包含错误对象。您可以在此处查看JSON的示例。

{

    "data": {
        "status": 406,
        "message": "Not Acceptable",
        "errors": {
            "cu_email": [
                "'stefappmax.be'is no valid email!"
            ]
        }
    }

}

所有我的文本框的名称与JSON中的名称相同,例如我的电子邮件文本框称为cu_email。

现在我有这段代码:

   NSDictionary* dict = [json objectForKey:@"data"];
                NSLog(@"dict: %@",dict);
                for (NSString *errorObject in [dict objectForKey:@"errors"]) {
                    NSLog(@"error name: %@",errorObject);
                }

这将返回所有包含错误的文本字段的名称。现在我想要做的是在这些文本字段周围加上红色边框。我知道要添加边框,您需要实现quartzcore框架并添加以下代码。

self.cu_email.layer.borderColor = [[UIColor redColor] CGColor];

但是你们是否知道如何使用 errorObject 替换 cu_email?


你想用错误文本替换电子邮件文本还是在字段中绘制红色边框? - amb
在该字段周围绘制红色边框。 - Steaphann
你可以在这个SO答案中找到解决方案。 - amb
1个回答

9
我认为这个方法对您有用:
您可以使用KVC访问textField属性:
UITextField *theErrorField = (UITextField *)[self valueForKey:errorObject];
theErrorField.layer.borderColor = [[UIColor redColor] CGColor];
theErrorField.layer.borderWidth = 3.0;

抱歉,但它没有起作用。你可能需要更多的细节吗? - Steaphann
@StefGeelen:你是为这些文本字段声明了属性还是动态添加的文本字段? - Midhun MP
我为这些文本字段声明了一个属性。 - Steaphann
奇怪,当我执行theErrorField.text = @"test"时,它会在包含错误的字段上显示“test”。 - Steaphann
明白了,我已经编辑了我的答案,你需要为边框指定一个宽度。 - Midhun MP
@StefGeelen:非常乐意 :) - Midhun MP

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接