3

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

4

1 回答 1

4

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

采用

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

反而。

另一个不相关的建议:永远不要以大写字母开头的方法名称。这违反了 Cocoa 的约定。改为使用verificarPass

于 2011-07-23T02:03:44.670 回答