0

リターンキーを押さずにキーボードで値を入力し、ラベルの2つを「選択」から別のものに変更すると、上部のボタンが有効になります。しかし、私は IBAction を使ってみました:

 - (IBAction)valuesChanged {
if (textField.text != nil && ![labelOne.text isEqualToString:@"Select"] && ![labelTwo.text isEqualToString:@"Select"]) {
    NSLog(@"Success");
 }

else {
    NSLog(@"No Success");
   }
}

しかし、次の理由でこれが機能しないことに気付きました。

  • IBAction Sent Event を「Value Changed」として配置すると、テキストフィールドが機能しません
  • ラベルはアクションを受け入れません。

どうすればこれを行うことができますか?

4

2 に答える 2

1

ユーザーがテキスト フィールドに文字を入力していること、またはその内容を変更していることを通知するテキスト フィールド デリゲート メソッドは、textField:shouldChangeCharactersInRange:replacementString:. テキスト フィールド デリゲートに実装し、必要に応じて応答します。また、単に YES を返します。

元のコードを接続できなかった理由の 1 つは、IBAction メソッドの標準的な形式を使用していないことが考えられます。そのはず

 - (IBAction)valuesChanged:(id)sender {

元のコードのもう 1 つの問題は、UITextField が Value Changed を発行しないことです。あなたが望んでいたのは編集の変更でした。しかし、デリゲート メソッドも同様に機能します。

于 2012-12-05T03:29:14.503 に答える
0

UITextFieldデリゲート メソッドを試してください。

- (void)textFieldDidBeginEditing:(UITextField *)textField;
- (void)textFieldDidEndEditing:(UITextField *)textField;
于 2012-12-04T16:56:10.560 に答える