textFieldDidEndEditing无法正确识别文本字段中的文本

时间:2013-05-09 22:34:12

标签: ios objective-c uitextfield

我正在尝试检测textField中的文字更改,我有一个特殊的错误。下面的代码将impactLabel1文本与先前设置的变量impactlabel1进行比较。如果textField中的变化与变量不相等,则setHeadingsButton会显示。如果texfield中只有一个单词没有空格,则此方法非常有效。然而,如果有两个词,它认为即使它们是相同的,它们也是不相等的。 NSLog同时显示两个值。

-(void) textFieldDidEndEditing:(UITextField *)textView
{
NSLog (@"%@", impactLabel1.text);
NSLog (@"%@", impactlabel1);    

if (impactLabel1.text != impactlabel1)
{
    [setHeadingsButton setAlpha:1];
}
    NSLog (@"%@", impactLabel1.text);
    NSLog (@"%@", impactlabel1);
}

2 个答案:

答案 0 :(得分:5)

您应该使用isEqualToString方法而不是“!=”运算符。该运算符比较指针,而不是实际的字符串值。

-(void) textFieldDidEndEditing:(UITextField *)textView
{
NSLog (@"%@", impactLabel1.text);
NSLog (@"%@", impactlabel1);    

if (![impactLabel1.text isEqualToString: impactlabel1])
{
    [setHeadingsButton setAlpha:1];
}
    NSLog (@"%@", impactLabel1.text);
    NSLog (@"%@", impactlabel1);
}

答案 1 :(得分:2)

尝试:

if (![impactLabel1.text isEqualToString:impactlabel1) ... 

也可能建议你使用impactlabel1 NSString *变量的其他名称,因为它很容易与impactLabel1 UILabel *对象混淆