在 UITextView 中禁用双击
Posted
技术标签:
【中文标题】在 UITextView 中禁用双击【英文标题】:Disable double tap in UITextView 【发布时间】:2013-06-30 09:14:08 【问题描述】:我想。我已经禁用了长按:
- (void)addGestureRecognizer:(UIGestureRecognizer *)gestureRecognizer
if ([gestureRecognizer isKindOfClass:[UILongPressGestureRecognizer class]])
gestureRecognizer.enabled = NO;
[super addGestureRecognizer:gestureRecognizer];
return;
我已经尝试对 UITapGestureRecognizer 做同样的事情,但它也禁止单击。
- (void)addGestureRecognizer:(UIGestureRecognizer *)gestureRecognizer
if ([gestureRecognizer isKindOfClass:[UILongPressGestureRecognizer class]])
gestureRecognizer.enabled = NO;
if ([gestureRecognizer isKindOfClass:[UITapGestureRecognizer class]])
gestureRecognizer.enabled = NO;
[super addGestureRecognizer:gestureRecognizer];
return;
我能做些什么来禁用只双击?
我知道 numberOfTapsRequired 方法,但不知道如何在我的代码中准确应用它。
【问题讨论】:
【参考方案1】:我建议你试试这个,而不是禁用你的点击手势识别器
if ([gestureRecognizer isKindOfClass:[UITapGestureRecognizer class]])
[(UITapGestureRecognizer *)gestureRecognizer setNumberOfTapsRequired:1];
通过这种方式,您应该启用单击并禁用双击。
【讨论】:
我试过了。在 'UIGestureRecognizer *' 类型的对象上找不到“属性 'numberOfTapsRequired'。 好的,那是因为缺少对UITapGestureRecognizer
(UITapGestureRecognizer
子类)的向下转换...我编辑了我的答案,现在它可以工作了
这正是我所需要的。谢谢。【参考方案2】:
numberOfTapsRequired 的默认值为 1,设置为 2。
http://developer.apple.com/library/ios/#documentation/uikit/reference/UITapGestureRecognizer_Class/Reference/Reference.html
【讨论】:
我知道。如果我这样做,结果将是相同的(将被阻止所有水龙头)。我需要类似:“if (doubleTap) >>> gestureRecognizer.enabled = NO;” 您是否为两次点击创建了一个手势识别器,而一个动作什么都不做? 是的,那没用。但我不确定,这样做是否正确。以上是关于在 UITextView 中禁用双击的主要内容,如果未能解决你的问题,请参考以下文章