我的程序出了问题。基本上我想要的是,我有2 nssecuretextfield,我有一个按钮。如果两者相等,则在nsimageview上显示一个图像,否则显示其他图像。这可能非常简单,但我是mac编程的新手,
.h文件:
IBOutlet NSSecureTextField *textField;
IBOutlet NSSecureTextField *textField2;
IBOutlet NSImageView *imagem;
}
- (IBAction)Verificarpass:(id)sender;
.m文件:
- (IBAction)Verificarpass:(id)sender;
{
NSString *senha1 = [textField stringValue];
NSString *senha2 = [textField2 stringValue];
NSImage *certo;
NSImage *errado;
certo = [NSImage imageNamed:@"Status_Accepted.png"];
errado = [NSImage imageNamed:@"Error.png"];
if (senha1 == senha2) {
[imagem setImage:certo];
}
if (senha1 != senha2) {
[imagem setImage:errado];
}
}
是的,有人可以帮我吗?
我试过,它只显示1张图片,即使它是对还是错。
答案 0 :(得分:4)
您无法通过==
或!=
比较字符串的内容。这比较了指针值(即字符串对象所在的地址)。
使用
if ([senha1 isEqualToString:senha2]) {
[imagem setImage:certo];
}else{
[imagem setImage:errado];
}
代替。
另一个不相关的建议:永远不要用大写字母开始方法名称。这是针对Cocoa惯例的。请改用verificarPass
。