2014-02-27 69 views
0

我有一個輸入字段,用戶需要用字母數字代碼填充。用戶用來鍵入代碼的鍵盤有一個動態返回按鈕,當他在該字段上寫入一些文本時,該按鈕將變爲「發送」。當該字段爲空時,返回按鈕具有默認值。動態更改鍵盤的返回按鈕,但保留類型

動態地改變我用下面的代碼返回按鈕類型:

if([textField.text isEqualToString:@""]) 
{ 
    textField.returnKeyType = UIReturnKeyDefault; 
} 
else 
{ 
    textField.returnKeyType = UIReturnKeySend; 
} 
[textField reloadInputViews]; 

然而,這具有以下缺點:由於代碼是字母數字字符,用戶可鍵入數字,然而鍵盤總會切換回字母鍵盤,因此要連續鍵入多個數字,他需要連續切換到數字鍵盤。

有沒有什麼辦法可以在用戶鍵入的時候動態改變鍵盤的返回鍵,而是將鍵盤狀態保存爲字母或數字鍵盤?

回答

1

正如馬丁上面提到的那樣,它不是蘋果方面的bug,而是我的方面。不過,我會發布我找到的解決方案,因爲它是解決特定問題的解決方案:

Apple在文本字段中存在文本時爲我們提供了一個屬性,而不是手動更改返回鍵類型稱爲enablesReturnKeyAutomatically,當設置爲YES時,它會自動管理問題,根據文本字段中是否有文本來啓用和禁用返回鍵。

因此,您不需要修改returnKeyType屬性,因此不需要調用reloadInputViews,因此鍵盤不會回到其原始狀態。

1

我認爲這不是蘋果方面的錯誤,更多的是鍵盤API缺失的實現。使用新的iOS8 API,您可能想要創建自己的鍵盤,並返回UIKeyboardType

對於iOS7,我通過檢查鍵盤的視圖來解決問題。使用US2KeyboardType CocoaPod或來源: https://github.com/ustwo/US2KeyboardType