2009-11-09 347 views
2

我正在編寫一個iPhone應用程序,要求用戶輸入可能包含小數點(貨幣值,百分比等)的多個值。值中的小數位數變化。問題在於數字鍵盤不包含用於輸入小數點的鍵。帶小數點的iPhone數字鍵盤

當我鎖我的電話,說來了輸入密碼有一個自定義按鈕,撥打緊急電話(如下面的截圖所示)的數字鍵盤:

Numberpad with custom button http://img25.imageshack.us/img25/6426/photoejg.jpg

有誰知道如何用小數點按鈕或自定義按鈕創建數字鍵盤(如上面的緊急呼叫按鈕)?

謝謝。

回答

7

有沒有蘋果認可的方式來編輯現有的鍵盤。如果您希望他們允許,請提交功能請求。

這就是說,在大多數應用程序中,鍵盤(UIKeyboard的實例)是一個單獨的UIWindow,您可以遍歷應用程序中的窗口並開始添加自定義子視圖,以響應適當的觸摸操作。通過遍歷[[UIApplication sharedApplication] windows]並檢查描述是否包含字符串UIKeyboard來查找它。有關此方法和示例代碼的更多信息,請參閱this answer

另一種方法是創建自己的自定義視圖並從頭開始構建鍵盤。但是,如果你這樣做的話,要小心,因爲它需要大量的手工工作,不僅在創建鍵盤和獲得觸摸行爲來匹配Apple的時候,而且在你添加的任何控件都會帶來常規鍵盤 - 你需要重定向諸如becomeFirstResponder之類的東西來展示你自己的鍵盤,而不是Apple的。

編輯:作爲ZaBlanc指出,iOS設備的新版本有辦法與inputViewinputAccessoryView屬性來做到這一點。有關詳細信息,請參閱UIResponder類別參考。

+1

UITextField支持3.2+的inputView屬性,因此這更容易提供您自己的視圖。 :-)只是替換鍵盤的位置。 inputAccessoryView還可讓您輕鬆添加工具欄。 – ZaBlanc 2010-07-07 21:08:33

1

創建一個包含UIView和一堆按鈕的UIViewController。現在你的鍵盤可以擁有你想要的任何東西。

2

將UIKeyboardType設置爲UIKeyboardTypeDecimalPad

適用於iOS 4.1及更高版本。