1

ユーザーが TextField をタップしたときにキーボードが表示されないようにする方法を見つけようとしていますが、それを行う方法が見つかりませんでした。

textField をデリゲートにリンクした後、このコードを試しましたが、それでもうまくいきませんでした。コードはログに記録されていましたが、キーボードは表示されました。

- (BOOL)textFieldShouldBeginEditing:(UITextField *)textField { 
    NSLog(@"BeginEditing");
    return YES;
    [textField resignFirstResponder];
}

戻るとNO、必要な textField からフォーカスが失われます。

私が持っている textFields には、同じビューのボタンからの値が入力されています。そのため、キーボードを表示したくないのと同時に、入力したい textField をユーザーに選択してもらいたいのです。

4

5 に答える 5

4

ユーザーが入力するテキストフィールドを選択するだけで、キーボードを表示したくない場合は、次のことができます。

  • テキストフィールドにタグを追加します
  • コードを次のように変更します。
-(BOOL)textFieldShouldBeginEditing:(UITextField *)textField 
{
    selectedTextFieldTag = textField.tag;
    return NO;
}

value を使用selectedTextFieldして、コードに入力するテキストフィールドを識別します。return NOキーボードの表示を許可しません。

于 2012-06-18T12:21:02.413 に答える
1

[textField rejectFirstResponder]; メソッドが呼び出される前にメソッドから戻っているため、呼び出されません。それは警告を発しませんか?

ここで NO を返すか、それがうまくいかない場合は、テキスト フィールドでのユーザー操作を無効にしてみてください。

[myTextField setUserInteractionEnabled:NO];
于 2012-06-18T12:09:55.537 に答える
0
- (BOOL)textFieldShouldBeginEditing:(UITextField *)textField { 
NSLog(@"BeginEditing");
[textField resignFirstResponder];
return YES;

}
于 2012-06-18T12:10:38.040 に答える
0

したがって、ここでは flag int 変数を使用して、フォーカスされたテキストフィールドに値を割り当てます

int i;.h または .m ファイルでグローバルにフラグを定義する

その後、textField Delegate メソッドで以下のコードを使用します...

-(BOOL)textFieldShouldBeginEditing:(UITextField *)textField{

    if (textField == yourtextField1 ) {
        i=1;
    }
    else if (textField == yourtextField2 ) {
        i=2;
    }
    else if (textField == yourtextField3 ) {
        i=3;
    }
    else if (textField == yourtextField4 ) {
        i=4;
    }
    return NO;
}
-(IBAction)yourbutton1_Clicked:(id)sender{
           if( i == 1){
              yourtextField1.text=yourbutton1.titleLabel.text;
          }
          else if ( i == 2){
            yourtextField2.text=yourbutton1.titleLabel.text;
          }
          else if ( i == 3){
            yourtextField3.text=yourbutton1.titleLabel.text;
          }
          else if ( i == 4){
            yourtextField4.text=yourbutton1.titleLabel.text;
          }
          else{
              NSLog(@"Please Click On TextField");//here you can put AlertView Message
          }
}

等々.......

また、ボタンの送信者IDとタグを使用して一般的な方法を使用することもできます......

于 2012-06-18T12:24:15.333 に答える