首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何在UITextField和UISearchBar中禁用长按手势识别器?

如何在UITextField和UISearchBar中禁用长按手势识别器?
EN

Stack Overflow用户
提问于 2016-12-02 18:58:10
回答 4查看 7.3K关注 0票数 3

我看到很多关于在UItextView中禁用长时间按的帖子,但同样的过程在UITextField和UISearchBar上是不起作用的。

有没有办法在UITextField和UISearchBar上禁用长按,这样我就可以避免长按时放大镜?

我已经检查了"Disable Magnifying Glass in UITextField“,但给出的解决方案实际上并没有禁用放大镜。它只是不允许粗略的在文本之间移动。但仍在展示放大镜。

我想禁用长按-以避免Problem,因为我面对的是放大镜。我想现在就停用它。当我能够解决这个问题时,我会再次启用它。

EN

回答 4

Stack Overflow用户

发布于 2016-12-02 19:26:41

您可以尝试跟随,仅禁用内置的长按手势

代码语言:javascript
复制
for (UIGestureRecognizer *recognizer in textView.gestureRecognizers) {
  if ([recognizer isKindOfClass:[UILongPressGestureRecognizer class]]){
    recognizer.enabled = NO;
  }
}

所有人的委托方法:

代码语言:javascript
复制
- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string
{
return NO;
}
票数 2
EN

Stack Overflow用户

发布于 2017-12-22 20:26:35

@Neeraj在Swift 4中的答案:

代码语言:javascript
复制
class CustomTextView: UITextView {

   override func addGestureRecognizer(_ gestureRecognizer: UIGestureRecognizer) {

     if gestureRecognizer.isKind(of: UILongPressGestureRecognizer.self) {
              gestureRecognizer.isEnabled = false
     }
    return super.addGestureRecognizer(gestureRecognizer)
   }
}
票数 0
EN

Stack Overflow用户

发布于 2019-07-05 05:56:59

在自定义类中的这种组合是我唯一能够为自己工作的东西,在第一次长按下时,它有时仍然会使放大镜出现:

代码语言:javascript
复制
//swift 4.2
override func addGestureRecognizer(_ gestureRecognizer: UIGestureRecognizer)
{

    if gestureRecognizer.isKind(of: UILongPressGestureRecognizer.self)
    {
        print(gestureRecognizer.name.unwrappedDebugString)
        gestureRecognizer.isEnabled = false
    }
    return super.addGestureRecognizer(gestureRecognizer)
}
override func becomeFirstResponder() -> Bool
{
    for recognizer in self.gestureRecognizers ?? []
    {
        if (recognizer is UILongPressGestureRecognizer)
        {
            recognizer.isEnabled = false
        }
    }
    return super.becomeFirstResponder()
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/40930592

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档