(譯)iPhone: 用公開API創建帶小數點的數字鍵盤 (OS 3.0, OS 4.0)

更新: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的一份拷貝:

DecimalPointNumberPad-v4

謝謝

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章