在NSImageView上设置图像

时间:2011-07-23 02:00:51

标签: xcode cocoa macos nsimage nsimageview

我的程序出了问题。基本上我想要的是,我有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张图片,即使它是对还是错。

1 个答案:

答案 0 :(得分:4)

您无法通过==!=比较字符串的内容。这比较了指针值(即字符串对象所在的地址)。

使用

if ([senha1 isEqualToString:senha2]) {
    [imagem setImage:certo];
}else{
    [imagem setImage:errado];
}

代替。

另一个不相关的建议:永远不要用大写字母开始方法名称。这是针对Cocoa惯例的。请改用verificarPass