UILongPressGestureRecognizer在Textfield上显示警报
问题描述:
我有一个UILongPressGestureRecognizer添加到UITextField中。当我按下UITextField时,它显示我警觉,但这是三个警告给我看。 这是我的代码:UILongPressGestureRecognizer在Textfield上显示警报
- (void)viewDidLoad
{
[super viewDidLoad];
UILongPressGestureRecognizer *gs = [[UILongPressGestureRecognizer alloc]initWithTarget:self action:@selector(AlertServer:)];
gs.delegate = self;
[_companyidTxt addGestureRecognizer:gs];
[gs release];
}
-(void)AlertServer:(UILongPressGestureRecognizer *)gs
{
alertView = [[UIAlertView alloc] initWithTitle:@"Server" message:@"" delegate:self cancelButtonTitle:@"Cancel" otherButtonTitles:@"Okay", nil];
alertView.alertViewStyle = UIAlertViewStylePlainTextInput;
myTextField = [alertView textFieldAtIndex:0];
myTextField.text=mainString;
[alertView show];
[alertView release];
[alertView retain];
}
谁能解释为什么出现这种情况,以及如何预防? Thanx
答
试试这个,的
- (void)AlertServer:(UILongPressGestureRecognizer*)sender {
if (sender.state == UIGestureRecognizerStateEnded) {
alertView = [[UIAlertView alloc] initWithTitle:@"Server" message:@"" delegate:self cancelButtonTitle:@"Cancel" otherButtonTitles:@"Okay", nil];
alertView.alertViewStyle = UIAlertViewStylePlainTextInput;
myTextField = [alertView textFieldAtIndex:0];
myTextField.text=mainString;
[alertView show];
[alertView release];
}
else if (sender.state == UIGestureRecognizerStateBegan){
NSLog(@"UIGestureRecognizerStateBegan.");
//Do Whatever You want on Began of Gesture
}
}
+0
谢谢,我尝试代码,但它不工作:( –
答
根据您的观察结果更改您的longPressGestureRecognizer.minimumPressDuration
(时间间隔以秒为单位,默认持续时间为0.5秒)或使用某些标志来检查是否已显示警报。
+0
谢谢你,但它不工作:( –
重复:http://*.com/questions/3319591/uilongpressgesturerecognizer-gets-called-twice-when-pressing-down和内容:HTTP://计算器。 com/questions/3243812/uilongpressgesturerecognizer-问题和这:http://*.com/questions/15306942/uialertview-alert-repeat-three-times-within-long-press-gesture-recognizer?rq=1和这个: http://*.com/questions/15727203/longpress-on-iphone-app-opens-3-alerts-alertview-or-gesture-code-issue?rq=1请在查询之前检查其他问题。 – fishinear