1

我正在尝试检测 a 中文本的变化,但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);
}
4

2 回答 2

5

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

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

if (![impactLabel1.text isEqualToString: impactlabel1])
{
    [setHeadingsButton setAlpha:1];
}
    NSLog (@"%@", impactLabel1.text);
    NSLog (@"%@", impactlabel1);
}
于 2013-05-09T22:39:29.540 回答
2

尝试:

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

可能还建议您为 Impactlabel1 NSString* 变量使用其他名称,因为它很容易与 ImpactLabel1 UILabel* 对象混淆

于 2013-05-09T22:40:58.133 回答