检测已经激活的UITextField上的点击

时间:2013-11-21 18:20:16

标签: ios objective-c uitextfield

我有一个UITextField并且它被激活(插入符号闪烁)。我想检测用户何时点击UITextField(默认行为是显示/隐藏“Select / SelectAll / Paste”上下文菜单)。我尝试了几件事,其中一件是UITapGestureRecognizer:

self.userInteractionEnabled = YES;
UITapGestureRecognizer *tap = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(tap:)];
[self addGestureRecognizer:tap];
tap.delegate = self;

只需点击UITextField就不会调用我的处理程序。

- (void)tap:(UITapGestureRecognizer *)tap
{
    if (tap.state == UIGestureRecognizerStateBegan)
    {
        // do something
    }

    if (tap.state == UIGestureRecognizerStateEnded)
    {
        // do something
    }
}

“轻扫”UITextField会产生调用(这不能解决问题),即便如此,tap.state总是UIGestureRecognizerStateEnded(我希望能够区分TouchDown和TouchUp)。

有什么建议吗?

1 个答案:

答案 0 :(得分:1)

如何在文本字段上添加透明视图(或99%透明),并将手势识别器放在该视图中?

在用户激活视图时插入视图,并在取消文本视图时将其删除。

我记得你可能需要使用alpha = 0.999;的透明度,因为我似乎记得完全透明的视图不会激活他们的手势识别器(但我可能是错的,或者我的信息已经过时了。)