gpt4 book ai didi

ios - UIGestureRecognizer 和 UITextView

转载 作者:可可西里 更新时间:2023-11-01 05:38:17 26 4
gpt4 key购买 nike

我正在努力实现一个 UITextView,我只想在其中响应 TextView 指定部分中的触摸。

我在 View 上附加了一个手势识别器,它工作正常,直到我将 View 设置为第一响应者,如果 View 中的点击点大于 X 和 Y 值,我就会这样做。

- (IBAction)textViewTapped:(UIGestureRecognizer *)sender {
CGPoint point = [sender locationOfTouch:0 inView:self.view];

NSLog(@"x ix %f, y is %f", point.x, point.y);

if (point.x > 96 && point.y > 106)
[self.myTextView becomeFirstResponder];
}

问题是,一旦它被设置为第一响应者,然后通过在该 TextView 之外点击而辞职,我的手势识别器方法就再也不会被调用了。如果我点击未设置第一响应者的区域,那么我的方法会在我点击时被调用多次。如果我设置然后退出第一响应者,它在第一次退出后不会响应。

- (IBAction)viewTapped:(UIGestureRecognizer *)sender {    [self.view endEditing:YES];    UITapGestureRecognizer *tap = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(textViewTapped:)];    [self.myTextView addGestureRecognizer:tap];    NSArray *gestures = [self.myTextView gestureRecognizers];    NSLog(@"got %d recognizers", [gestures count]);  }

在刚刚的尝试中,如果我在每次辞职后添加一个新的手势识别器,那是可行的,但显然不是一个好的解决方案。

有什么想法吗?

最佳答案

我有同样的问题,我通过实现虚拟 UIGestureRecognizerDelegate

解决了它

将此添加到您的代码中

myGestuerRecognizer.delegate = self

然后实现 UIGestureRecognizerDelegate

#pragma mark - UIGestureRecognizerDelegate

-(BOOL)gestureRecognizerShouldBegin:(UIGestureRecognizer *)gestureRecognizer{
return YES; }

-(BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldRecognizeSimultaneouslyWithGestureRecognizer:(UIGestureRecognizer
*)otherGestureRecognizer{
return YES; }

-(BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldReceiveTouch:(UITouch *)touch{
return YES; }

这对我有用

关于ios - UIGestureRecognizer 和 UITextView,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10216782/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com