如何在不阻止 textView 触摸的情况下向所有 UITextView 添加一个 UIGestureRecognizer

Posted

技术标签:

【中文标题】如何在不阻止 textView 触摸的情况下向所有 UITextView 添加一个 UIGestureRecognizer【英文标题】:How To Add One UIGestureRecognizer to All UITextView without blocking textView touches 【发布时间】:2016-07-20 12:27:52 【问题描述】:

如何在不阻止 textView 触摸的情况下向所有 UITextView 添加一个 UIGestureRecognizer..

我想在任何人触摸任何 UITextView 时调用一个方法。请任何人给我答案。

【问题讨论】:

您的实际问题是什么? 【参考方案1】:

<UITextFieldDelegate> - (BOOL)textFieldShouldBeginEditing:(UITextField *)textField

【讨论】:

【参考方案2】:

只需使用UITextFieldDelegate 方法或在UITextField 下添加UIView 并将手势识别器 添加到UIView

【讨论】:

【参考方案3】:

首先你必须添加uitextfielddelegate

<UITextFieldDelegate> 

然后使用那个方法

(BOOL)textFieldShouldBeginEditing:(UITextField *) textField

【讨论】:

然后兄弟该方法已满。【参考方案4】:

试试这样:

- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event
    NSLog(@"touchesBegan");

然后你在上面的操作中处理下面的方法

[super touchesBegan:touches withEvent:event];

你的整体解决方案是这样的:

     #import "YourTextView.h" 

        @implementation YourTextView

        - (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event
    [super touchesBegan:touches withEvent:event];

 NSLog(@"touchesBegan");
        
    - (void)touchesEnded:(NSSet *)touches withEvent:(UIEvent *)event
        NSLog(@"touchesEnded");
        [self.nextResponder touchesEnded: touches withEvent:event]; 
        NSLog(@"touchesEnded");
        [super touchesEnded:touches withEvent:event];
        NSLog(@"touchesEnded");
    

我希望这对你有帮助.. :)

【讨论】:

【参考方案5】:

使用此代码这是委托

<UITextFieldDelegate> 
- (BOOL)textFieldShouldBeginEditing:(UITextField *)textField

【讨论】:

以上是关于如何在不阻止 textView 触摸的情况下向所有 UITextView 添加一个 UIGestureRecognizer的主要内容,如果未能解决你的问题,请参考以下文章

SwiftUI - 有没有办法在不覆盖子视图的任何手势的情况下向视图添加手势?

我可以在不加入 IRC 频道的情况下向它发送消息吗?

我开发了提醒应用程序,因此如何在不使用 firebase 的情况下向用户发送本地通知

如何在不复制对象的情况下向 Python 公开返回 C++ 对象的函数?

如何在不覆盖的情况下向 Firebase Firestore 添加值?

如何在不影响周围文本的情况下向 div 添加文本?