如何在文本字段上双击键盘

How to get Keyboard on double tap on a text field

提问人:user3275031 提问时间:2/23/2014 更新时间:2/23/2014 访问量:1024

问:

我正在制作一个应用程序,我希望在其中双击键盘,我通过使用文本字段委托方法在单击时禁用了键盘:

-(BOOL)textFieldShouldBeginEditing:(UITextField *)textField 
{
    return NO; 
}

之后,我为 textfield 制作了一个操作方法

[textField1 addTarget:self action:@selector(clicked) forControlEvents:UIControlEventTouchDownRepeat];

在这个方法中,我使用了以下代码:

[textField1 becomeFirstResponder];

但这行不通

建议我,我该怎么办?

iOS的iPhone iOS5的iOS4 iOS7

评论


答:

0赞 Coldsteel48 2/23/2014 #1

那么直截了当的建议是添加一个静态变量

-(BOOL)textFieldShouldBeginEditing:(UITextField *)textField 
{
    static int count = 0;
    count++;
    if(count%2 ==0)
        return YES;
    else 
        return NO;
}

评论

0赞 santhu 2/23/2014
如果用户也分别点击它两次,您的代码将使其成为响应者。这是不需要的。
0赞 Coldsteel48 2/23/2014
然后,您可以将其计为 IVAR 并放置一个计时器,如果 x 时间内没有 2 次点击,则再次将其变为 0。除了我的回答,我的意思是。
0赞 user3275031 2/25/2014
如果用户也分别点击它两次,您的代码将使其成为响应者。这是不需要的。
0赞 Coldsteel48 2/25/2014
阅读我的评论 - >如果你不明白 - >那么我解释你只是手动操作,你定义了用户点击的时间窗口。
1赞 santhu 2/23/2014 #2

首先创建一个 Bool (say ) 类型的类变量,并将其初始化为 NO。 并将 with 添加到 UITextField。BOOL shouldFireUITapGestureRecognisernumber of taps = 2

当附加到 TapGesture 的选择器触发时,请使用以下代码

-(void)tapped:(UITapGestureRecogniser *)ges{
 _shouldFire=YES;
 [textField1 becomeFirstResponder];
}

并将您的方法更改为>

-(BOOL)textFieldShouldBeginEditing:(UITextField *)textField 
{   
    if(self.shouldFire==YES){
      self.shouldFire=NO;
      return YES: 
    }
    return NO;
}

评论

0赞 user3275031 2/25/2014
感谢您的代码,但我仍然面临同样的问题。
0赞 santhu 2/25/2014
你们是如何使用我的代码的?你是不是创建了 shouldFire Bool 还是 int ?给我看你的代码。