提问人:user3275031 提问时间:2/23/2014 更新时间:2/23/2014 访问量:1024
如何在文本字段上双击键盘
How to get Keyboard on double tap on a text field
问:
我正在制作一个应用程序,我希望在其中双击键盘,我通过使用文本字段委托方法在单击时禁用了键盘:
-(BOOL)textFieldShouldBeginEditing:(UITextField *)textField
{
return NO;
}
之后,我为 textfield 制作了一个操作方法
[textField1 addTarget:self action:@selector(clicked) forControlEvents:UIControlEventTouchDownRepeat];
在这个方法中,我使用了以下代码:
[textField1 becomeFirstResponder];
但这行不通
建议我,我该怎么办?
答:
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 shouldFire
UITapGestureRecogniser
number 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 ?给我看你的代码。
上一个:Iphone屏幕锁定
评论