選擇UITextField
並顯示鍵盤時,如果點擊視圖的其他部分,則鍵盤消失。在iOS7中點擊UITextFields
如果我點擊另一個UITextField
,鍵盤保持不變,第一個文本框被取消選中,並且什麼也沒有發生。然後,我需要再次點擊其他UITextFIeld
以進行選擇並顯示鍵盤。
當第一個UITextField
被選中時,是否有辦法讓第二個UITextField立即可用?
選擇UITextField
並顯示鍵盤時,如果點擊視圖的其他部分,則鍵盤消失。在iOS7中點擊UITextFields
如果我點擊另一個UITextField
,鍵盤保持不變,第一個文本框被取消選中,並且什麼也沒有發生。然後,我需要再次點擊其他UITextFIeld
以進行選擇並顯示鍵盤。
當第一個UITextField
被選中時,是否有辦法讓第二個UITextField立即可用?
如果您在重裝的textFieldDidEndEditing
tableview中,你會以這種方式打破的選擇。不要這樣做。
首先,我認爲它是一個錯誤,鍵盤不被解僱,並在另一個UITextField或UITextView上點擊時再次打開。應該報告,蘋果應該修復它。
使用文本字段委託方法和註冊鍵盤通知應該可以手動跟蹤,如果用戶敲擊另一個文本字段並且鍵盤沒有關閉並重新打開。至少你應該能夠檢測到這種情況,並通過[textField resignFirstResponder]手動關閉鍵盤。
鍵盤通知如下:
UIKeyboardWillShowNotification
UIKeyboardDidShowNotification
UIKeyboardWillHideNotification
UIKeyboardDidHideNotification
I'm''pretty確保您知道的UITextField和TextView的委託方法
– textFieldShouldBeginEditing:
– textFieldDidBeginEditing:
– textFieldShouldEndEditing:
– textFieldDidEndEditing:
我不是在活動項目的那一刻所以我不確定我是否忽略了這個問題,但我不記得這發生在我身上。
今晚我會試試這個。我相當肯定當點擊第二個文本框時,「DidEndEditing」不會觸發,但鍵盤仍然保持着我的配件完成按鈕。 –
您可以使用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;
}
這不一定是下一個文本框。我在屏幕上有8個,任何一個都是需要點擊的有效目標。 –
試試吧,按另一個視圖應該在fn下面調用。
-(void)disappearKey{
[self.view endEditing:YES];
}
鍵盤消失後,點擊任意文本框,都會出現鍵盤。
請顯示您使用的代碼來關閉鍵盤。 –
您可以將下一個按鈕作爲返回按鈕,並且在委託中,當它被點擊時,創建第二個UITextField第一響應者。 – zaheer
Stefan - 這不是正常的行爲(你應該能夠通過創建一個具有2個文本字段的基本單一視圖應用程序來驗證這一點)。代碼中的某些內容導致了這種行爲。 –