Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/106.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 如何在文本字段上双击键盘_Ios_Iphone_Ios5_Ios4_Ios7 - Fatal编程技术网

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

Ios 如何在文本字段上双击键盘,ios,iphone,ios5,ios4,ios7,Ios,Iphone,Ios5,Ios4,Ios7,我正在制作一个应用程序,其中我希望双击键盘,我已使用textfield委托方法禁用了单点键盘: -(BOOL)textFieldShouldBeginEditing:(UITextField *)textField { return NO; } 然后我为textfield创建了一个动作方法 [textField1 addTarget:self action:@selector(clicked) forControlEvents:UIControlEventTouchDownRepe

我正在制作一个应用程序,其中我希望双击键盘,我已使用textfield委托方法禁用了单点键盘:

-(BOOL)textFieldShouldBeginEditing:(UITextField *)textField 
{
    return NO; 
}
然后我为textfield创建了一个动作方法

[textField1 addTarget:self action:@selector(clicked) forControlEvents:UIControlEventTouchDownRepeat];
在这个方法中,我使用了以下代码:

[textField1 becomeFirstResponder];
但这是行不通的


建议我,我该怎么做?

直接建议是添加一个静态变量

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

首先创建一个Bool类型的类变量(比如
boolshouldfire
),并将其初始化为NO。 并将
uitapgesturerecognizer
点击次数=2
添加到uitext字段

当连接到TapSignature的选择器触发时,请使用以下代码

-(void)tapped:(UITapGestureRecogniser *)ges{
 _shouldFire=YES;
 [textField1 becomeFirstResponder];
}
并将您的方法更改为->

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

如果用户也分别点击它两次,您的代码将使它成为响应者。这是不需要的。然后你可以把它算作IVAR,如果在x时间内没有2次点击,你可以设置一个计时器,使它再次成为0。除了我的答案,我的意思是。如果一个用户分别点击它两次,你的代码将使它成为响应者。这是不需要的。阅读我的评论->如果你没有得到它->然后我解释你只是手动操作,你定义了用户点击的时间窗口。感谢代码,但我仍然面临同样的问题。你是如何使用我的代码的?你是否创建了shouldFire Bool或int?显示你的代码。