2013-04-09 80 views
1

在我的iPad應用程序中有3個文本框,我在第二個文本框中使用popoverview控制器。 這裏他們2例使用PopOver時無法退出鍵盤

在第一種情況:

正如我編輯完第一個文本框,然後點擊鍵盤上的一個按鈕當時的鍵盤是完全辭職和popoverview控制器打開了第二個文本框。在這裏我寫了代碼,當第一個文本框的下一個按鈕點擊時,第二個文本框應該成爲FirstResponder。

在第二種情況:

這裏的實際問題, 當我完成編輯第一個文本框,並直接接觸的第二個文本框不點擊鍵盤上的一個按鈕,那個時候popoverview控制器打開菜單上的第二個文本框和鍵盤無法辭職,鍵盤被他們的代碼敲打,因爲辭職鍵盤不工作。

+0

看看我的回答這個問題,讓我知道,如果它的工作原理:http://stackoverflow.com/questions/3019709/modal-dialog-does-not-dismiss-keyboard/10507689#10507689 – 2013-04-09 07:13:52

+0

要澄清,更大的線程(接受的答案)也許是你正在尋找的。如果你有導航控制器,但是,使用鏈接的答案 – 2013-04-09 07:15:17

+0

嘿,我有同樣的問題..你有沒有找到任何解決方案? – raw3d 2013-04-25 11:57:15

回答

0

編寫代碼,你在這波紋管方法鍵盤的NEXT按鈕事件使用...

- (BOOL)textFieldShouldEndEditing:(UITextField *)textField { 
    if (textField == yourFirstTextBox) { 
     // write your code here 
    } 
    return YES; 
} 
0
-(void)textFieldDidBeginEditing:(UITextField *)textfield 
{ 

    if ([textfield tag]==yourtextfieldtag)//set tag for your textfield 
    { 
     [yourfirsttextfield resignFirstResponder]; 
     [yoursecondtextfield resignFirstResponder]; 
     . 
     . 
     . 

    //Write all textField with resignFirstResponder 
    } 

} 
0

這裏是你可以處理你的SoftKeypad的方式

Handling Soft Keypad in iPhone Tutorial

有三種簡單的方法可以在這裏處理鍵盤

  1. 按鈕點擊後返回。
  2. 當用戶單擊鍵盤上的返回或完成按鈕時,鍵盤返回。
  3. 當用戶觸摸背景屏幕/視圖時,鍵盤返回。

只要按照第三種方式在你的情況。 你需要做的只是創建一個方法,在該方法中可以調用所需文本字段的方法

方法。

和更新相關UIView類到Interface Builder中的UIControl。因爲我已經一步一步地寫下了所有的信息,使其更加簡單明瞭。

這裏是負責代碼剪斷

- (IBAction)keypadGoBack:(id)sender {  
    [userNameTextField resignFirstResponder]; 
    [passwordTextField resignFirstResponder]; 
} 

希望這會幫助你。

+0

我已經完成了第三步,這種情況下工作,但編輯第一個文本框後,當我直接點擊第二個文本框而不是觸摸背景或鍵盤上的下一個或完成按鈕它不工作..鍵盤在這種情況下 – user2260521 2013-04-09 11:10:54

+0

您是否爲** keypadGoBack **方法中的第二個文本添加了** resignFirstResponder **? – swiftBoy 2013-04-09 12:27:34

+0

是的,我已經添加resignFirstResponder爲第二個文本框,但沒有運氣.... – user2260521 2013-04-10 04:39:05

0
-(BOOL)textFieldShouldBeginEditing:(UITextField *)textField 
{ 
    if(textField==yourTextField) 
    { 
     [self.view endEditing:YES]; 
     // Write Your Popoverview Code/Extra Code 
     return NO; 
    } 
    return YES; 
} 
  1. 下面這個方法將被調用時,你會打文本框。
  2. 然後用yourtextFieldName檢查文本字段,如果它的匹配,它將會退出所有的鍵盤。如果有多個...也有幫助。

    [self。查看endEditing:YES];

  3. 而且你可以做額外的代碼也爲popoverview和返回no的手段它不會給鍵盤的那個perticuler textField。 謝謝。

相關問題