web-dev-qa-db-ja.com

UITextField Tapイベントを取得する方法?

IPadとIPhoneの両方のUITextFieldのタップまたはクリックでUIAlertViewを表示しようとしています。 IBActionを作成し、UITextFieldのTap Downイベントでアタッチします。

しかし、正しく機能しないということは、iPhoneの場合やiPadの場合には機能しない場合があることを意味します。

- (IBAction) TopuchState
{
    //function code
}

どうすればこれを実行できますか?.

enter image description here

21
Azhar

特定のテキストフィールドが編集を開始するときのターゲットを追加してみてください(UIControlEventEditingDidBegin):

 [textField1 addTarget:delegate action:@selector(textField1Active:) forControlEvents:UIControlEventEditingDidBegin];
25
J Max

UITextFieldデリゲートとして既にサブスクライブしているので、このメソッドを実装します。

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

    UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"Alert" message:@"Alert Message" delegate:self cancelButtonTitle:@"Cancel" otherButtonTitles:@"Ok", nil];
    [alert show];

    return YES;
}
28
Lucien

In Swift

ViewDidLoadメソッドのイベント.editingDidBeginの特定のテキストフィールドのターゲットを追加します。

self.textField.addTarget(self, action: #selector(textFieldTouched(_:)), for: UIControlEvents.editingDidBegin)

func textFieldTouched(textField: UITextField) {
//Show AlertView
}
3
jaiswal Rajan

UITextFieldのデリゲートを設定し、メソッドを実装する方が簡単だと思います。

- (BOOL)textFieldShouldBeginEditing:(UITextField *)textField

その後、そのメソッド内でUIAlertViewを簡単に作成して表示できます。

ITextFieldDelegate を見てください。

幸運を!

2
Zalykr

TextFieldをデリゲートに接続し、この関数を呼び出します!!

-(BOOL)textFieldShouldBeginEditing:(UITextField *)textField {       
   [email protected]"   ";
   return YES;
}
1