更新:ios4.1現在已經將這個做到SDK了。你可以設置鍵盤類型爲UIKeyboardTypeDecimalPad!完成!
在開發iphone程序的時候你可以選擇各種鍵盤。其中的數字面板卻沒有帶小數點。在底部的左下角有一個空白按鈕,什麼作用都沒有。所以我將向你展示怎麼將一個小數點按鈕放在那裏,看起來像這樣的:
有一些其他的教程向你展示如何做到這樣,但是我相信我的更好。因爲代碼簡單易用,更靈活,並且UI顏色和按鈕狀態完美的融入鍵盤餘下的部分(和一些教程不同)。你用來實現的代碼和類似這樣的:
@interface DecimalPointNumberPadViewController :UIViewController <UITextFieldDelegate> {
NumberKeypadDecimalPoint*numberKeyPad;
}
@end
@implementation DecimalPointNumberPadViewController
- (void) textFieldDidBeginEditing:(UITextField*)textField {
numberKeyPad= [[NumberKeypadDecimalPoint keypadForTextField:textField] retain];
}
- (void)textFieldDidEndEditing:(UITextField *)textField {
[numberKeyPadrelease];
}
@end
· 它適合於任何view conreoller上顯示的任何UITextFields.
· 每一個text field只會添加一個小數點.
這裏是我實現的基本步驟:
1. 創建一個自定義的背景透明並且文本爲灰色的UIButton.
2. 高亮狀態我改變按鈕的背景圖片和文本顏色換成白色
3. 我找到程序裏windows的UIKeyboard並將自定義按鈕添加指定位置
4. 我添加一個delegate到按鈕上來監聽點擊事件併發送事件到添加小數點到UITextField的handler
2010年6月5日更新:OS4兼容並只使用公開API
由於使用私有API違反了SDK的協議,我已經更新代碼移除任何和私有API相關的代碼。並且現在在OS4.0上兼容。
2010年7月20日更新:這份代碼作爲我開發的app的一部分並且已經被apple接受。
我的xcode的一份拷貝:
謝謝