2014-02-25 17 views
3

選擇UITextField並顯示鍵盤時,如果點擊視圖的其他部分,則鍵盤消失。在iOS7中點擊UITextFields

如果我點擊另一個UITextField,鍵盤保持不變,第一個文本框被取消選中,並且什麼也沒有發生。然後,我需要再次點擊其他UITextFIeld以進行選擇並顯示鍵盤。

當第一個UITextField被選中時,是否有辦法讓第二個UITextField立即可用?

+0

請顯示您使用的代碼來關閉鍵盤。 –

+0

您可以將下一個按鈕作爲返回按鈕,並且在委託中,當它被點擊時,創建第二個UITextField第一響應者。 – zaheer

+1

Stefan - 這不是正常的行爲(你應該能夠通過創建一個具有2個文本字段的基本單一視圖應用程序來驗證這一點)。代碼中的某些內容導致了這種行爲。 –

回答

1

如果您在重裝的textFieldDidEndEditing tableview中,你會以這種方式打破的選擇。不要這樣做。

0

首先,我認爲它是一個錯誤,鍵盤不被解僱,並在另一個UITextField或UITextView上點擊時再次打開。應該報告,蘋果應該修復它。

使用文本字段委託方法和註冊鍵盤通知應該可以手動跟蹤,如果用戶敲擊另一個文本字段並且鍵盤沒有關閉並重新打開。至少你應該能夠檢測到這種情況,並通過[textField resignFirstResponder]手動關閉鍵盤。

鍵盤通知如下:

UIKeyboardWillShowNotification 
UIKeyboardDidShowNotification 
UIKeyboardWillHideNotification 
UIKeyboardDidHideNotification 

I'm''pretty確保您知道的UITextField和TextView的委託方法

– textFieldShouldBeginEditing: 
– textFieldDidBeginEditing: 
– textFieldShouldEndEditing: 
– textFieldDidEndEditing: 

我不是在活動項目的那一刻所以我不確定我是否忽略了這個問題,但我不記得這發生在我身上。

+0

今晚我會試試這個。我相當肯定當點擊第二個文本框時,「DidEndEditing」不會觸發,但鍵盤仍然保持着我的配件完成按鈕。 –

0
  • 您可以使用BSKeyboardControls。只是看演示,並決定使用或不使用 。

  • 或者你可以做你必須依次設置標籤到每個文本域
    在uiview中。然後使用下面的代碼。

    -(BOOL)textFieldShouldReturn:(UITextField*)textField 
    
    { 
        NSInteger nextTag = textField.tag + 1; 
    
        UIResponder* nextResponder = [textField.superview viewWithTag:nextTag]; 
    
        if (nextResponder) { 
    
        [nextResponder becomeFirstResponder]; 
    
        } else { 
    
        [textField resignFirstResponder]; 
    } 
    return NO; 
    } 
    
+0

這不一定是下一個文本框。我在屏幕上有8個,任何一個都是需要點擊的有效目標。 –

1

試試吧,按另一個視圖應該在fn下面調用。

-(void)disappearKey{ 
[self.view endEditing:YES]; 
} 

鍵盤消失後,點擊任意文本框,都會出現鍵盤。