所以我有一个UITextView,我用它来制作一个可移动的、可编辑的标签(我之前在So上的搜索显示这显然是最好的选择)。我需要让用户双击以启用编辑,并将其设置为第一响应者。我找不到这样做的方法,我所有的其他搜索结果要么是过时的答案,要么是模糊的答案。我试过的似乎都不管用。我尝试过使用UITextViewDelegate让它开始编辑,而不是使用textViewDidChangeSelection:选择文本,但在您更改当前选择之前,它不起作用。我还尝试使用自定义UITapGestureRecognizer,如下所示:
UITapGestureRecognizer *doubleTap = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(doubleTap:)];
[doubleTap setNumberOfTapsRequired:2];
[doubleTap setNumberOfTouchesRequired:1];
[newLabel addGestureRecognizer:doubleTap];
-(void)doubleTap:(UITapGestureRecognizer *)sender
{
NSLog(@"Double tap detected");
NSLog(@"Sender view of class %@", [[sender view] class]);
UITextView *tappedView = (UITextView *)[sender view];
[tappedView setEditable:YES];
[tappedView becomeFirstResponder];
// [tappedView setEditable:NO];
}永远不会调用双击手势。我不知道为什么。奇怪的是,在这种情况下,它也不选择文本。它似乎只是打破了双击的手势。有没有办法摆脱标准的双击选择手势,或者修改它?我应该继承UITextView的子类吗?如果是的话,我应该改变什么?
发布于 2013-07-14 00:53:27
您应该将手势识别器的目标设置为文本字段。
UITapGestureRecognizer *doubleTap = [[UITapGestureRecognizer alloc] initWithTarget:textField action:@selector(doubleTap:)];https://stackoverflow.com/questions/17631790
复制相似问题