0

テキスト フィールドにテキストを入力し、そのテキストに基づいて (「いいえ」と表示されている場合)、アラート ビューをポップアップさせたいと考えています。インターフェイスビルダーで UITextField を作成し、それをファイル所有者の UITextField デリゲートにアタッチしたので、すべて処理されました。しかし、テキスト フィールドにテキストを入力すると (具体的にはいいえ)、テキスト フィールドの外をクリックするか、キーボードを削除すると、アラート ビューがポップアップしません。viewcontroller.m ファイル内にこのためのメソッド全体を作成しました。そのメソッドのコードは次のとおりです。

-(void)engageAlert {

 if (myTextField.text == @"No") {
      theAlertView = [[UIAlertView alloc] initWithTitle:@"Notice" message:@"MyMessageHere"
      delegate:self cancelButtonTitle:@"Ok" otherButtonTitles:nil, nil];
      [theAlertView show];
 }

}

ここで何か不足していますか?テキストフィールドに No と入力しても何も起こりません。

4

1 に答える 1

0

犯人はラインになると思います

myTextField.text == @"No" 

決して一致しない2つのポインタを比較しているので。

@ "No" = 0x12341234またはNSStringの静的アドレスの任意のアドレス(@ ""は、NSStringオブジェクトを作成するコンパイラの省略形と考えることができます)

あなたが欲しいものは次のようなものです

if( [myTextField.text isEqualToString:@"No"])

また、スニペットのどこでメモリを解放しているかわからないため、AlertViewでメモリがリークしないことを確認してください。

于 2013-01-04T18:12:56.227 に答える