IPadとIPhoneの両方のUITextFieldのタップまたはクリックでUIAlertViewを表示しようとしています。 IBActionを作成し、UITextFieldのTap Downイベントでアタッチします。
しかし、正しく機能しないということは、iPhoneの場合やiPadの場合には機能しない場合があることを意味します。
- (IBAction) TopuchState
{
//function code
}
どうすればこれを実行できますか?.
特定のテキストフィールドが編集を開始するときのターゲットを追加してみてください(UIControlEventEditingDidBegin
):
[textField1 addTarget:delegate action:@selector(textField1Active:) forControlEvents:UIControlEventEditingDidBegin];
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;
}
In Swift
ViewDidLoadメソッドのイベント.editingDidBeginの特定のテキストフィールドのターゲットを追加します。
self.textField.addTarget(self, action: #selector(textFieldTouched(_:)), for: UIControlEvents.editingDidBegin)
func textFieldTouched(textField: UITextField) {
//Show AlertView
}
UITextField
のデリゲートを設定し、メソッドを実装する方が簡単だと思います。
- (BOOL)textFieldShouldBeginEditing:(UITextField *)textField
その後、そのメソッド内でUIAlertView
を簡単に作成して表示できます。
ITextFieldDelegate を見てください。
幸運を!
TextFieldをデリゲートに接続し、この関数を呼び出します!!
-(BOOL)textFieldShouldBeginEditing:(UITextField *)textField {
textView.text=@" ";
return YES;
}