2014-02-23 79 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

相關問題