2014-02-23 77 views
0

我做的,我想键盘上双击一个应用程序,我用文本框的委托方法有一个水龙头禁用键盘:如何获得双击键盘上的文本字段

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

而且之后我为文本框

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

而且在这个方法的操作方法我用这个代码:

[textField1 becomeFirstResponder]; 

但这不起作用

建议我,我该怎么办?

回答

0

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

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

如果用户点击它两次seperately也,你的代码将使它响应者。这是不需要的。 – santhu

+0

然后,你可以计算为IVAR,如果在x时间内没有2次点击使其成为0,则需要计时。除了我的答案,我的意思是。 –

+0

如果用户还单独点击了两次,您的代码将使其成为响应者。这是不需要的。 – user3275031

1

首先创建布尔类型的类变量(比如BOOL shouldFire),并将其初始化为NO。 并将UITapGestureRecognisernumber of taps = 2添加到UITextField。

当连接到TapGesture火灾的选择,使用下面的代码

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

,改变你的方法TO->

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

感谢您的代码,但我仍然面临同样的问题。 – user3275031

+0

你是如何使用我的代码的?你是否创建了shouldFire Bool或int?向我展示你的代码。 – santhu

相关问题