我正在尝试检测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);
}
答案 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 *对象混淆