gpt4 book ai didi

iphone - 将 TapGestureRecognizer 添加到 UITextView

转载 作者:行者123 更新时间:2023-12-03 19:59:24 27 4
gpt4 key购买 nike

我想添加一个 *UITapGestureRecognize*r 到我的 UITextView,因为我想关闭 TextView 所在的“弹出窗口”。所以我想要,当点击 T*extView* 时,将调用 Popup 类的“隐藏”方法。我尝试了如下方法,但由于某种原因它不起作用:

UITapGestureRecognizer *gr = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(show)];
[gr setNumberOfTapsRequired:1];
[viewText addGestureRecognizer:gr];

我也不想为它创建一个子类,因为我需要调用“父”方法“隐藏”。

也许您现在可以很好地解决该问题。
预先感谢您。

最佳答案

您不应该使用 UITapGestureRecognizer,而应使用 UITextFieldDelegate。

您可以在这里阅读:

http://developer.apple.com/library/ios/#DOCUMENTATION/UIKit/Reference/UITextViewDelegate_Protocol/Reference/UITextViewDelegate.html%23//apple_ref/doc/uid/TP40006897

您基本上需要添加UITextViewDelegate 像这样到你的 .h 文件 -

@interface MyViewController : UIViewController<UITextViewDelegate>

然后将您的 Controller 指定为委托(delegate):

viewText.delegate =self;

现在使用一种委托(delegate)方法,也许:

- (BOOL)textViewShouldBeginEditing:(UITextView *)textView{

// Do what you need to do...

}

编辑

我可以考虑另外两种方法:

  1. 您可以将 textView 包装在 UIView 中,并将 UITapGestureRecognizer 添加到 View 中。
  2. 您可以使用:

     -(void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event{
    UITouch *touch = [touches anyObject];
    CGPoint location = [touch locationInView:textView];

    //Checks if the tap was inside the textview bounds
    if (CGRectContainsPoint(textView.bounds, location)){
    //do something
    }
    }

祝你好运

关于iphone - 将 TapGestureRecognizer 添加到 UITextView,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6249222/

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