我有这个代码,当用户在我的文本字段中单击时捕获,并调用函数:
-(void)viewDidLoad{
[mytextfield addTarget:self
action:@selector(callvariant:)
forControlEvents:UIControlEventTouchDown];
}
-(void)callvariant:(UITextField *)textField{
NovoProdutoMFViewController *mf = [[NovoProdutoMFViewController alloc] init];
[self.navigationController pushViewController:mf animated:YES];
[mf setBusca:textField.placeholder];
}
代码运行完美,但最近需要使用此代码在我的项目中放置UIScrollView:
-(void)viewDidLoad{
[mytextfield addTarget:self
action:@selector(callvariant:)
forControlEvents:UIControlEventTouchDown];
scroll.contentSize = scroll.frame.size;
scroll.frame = self.view.frame;
[self.view addSubview:scroll];
}
-(void)callvariant:(UITextField *)textField{
NovoProdutoMFViewController *mf = [[NovoProdutoMFViewController alloc] init];
[self.navigationController pushViewController:mf animated:YES];
[mf setBusca:textField.placeholder];
}
现在有时当用户点击文本字段时调用该函数并且有时不调用,并且在其他时候有必要将文本字段单击下来超过2秒以调用该函数并且有时此方法不起作用
我不知道会发生什么,但我该如何解决?
答案 0 :(得分:0)
如果您想捕获用户触摸UITextField的事件,最好使用其委托方法。
UITextFieldDelegat有一个方法
- (BOOL)textFieldShouldBeginEditing:(UITextField *)textField; // return NO to disallow editing.
如果您在此处执行某些操作并返回NO,则会得到相同的结果。