3

プログラムに問題があります。基本的に私が欲しいのは、2 つの nssecuretextfield とボタンがあります。両方が等しい場合は nsimageview に 1 つの画像を表示し、そうでない場合は他の画像を表示します。これは非常に簡単かもしれませんが、私は 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];
}

代わりは。

別の無関係なアドバイス: メソッド名を大文字で始めないでください。それはココアの慣習に反しています。verificarPass代わりに使用してください。

于 2011-07-23T02:03:44.670 に答える