一、鍵盤風格
UIKit架構支援8種風格鍵盤。
複製代碼 代碼如下:
typedef enum {
UIKeyboardTypeDefault, // 預設鍵盤:支援所有字元
UIKeyboardTypeASCIICapable, // 支援ASCII的預設鍵盤
UIKeyboardTypeNumbersAndPunctuation, // 標準電話鍵盤,支援+*#等符號
UIKeyboardTypeURL, // URL鍵盤,有.com按鈕;只支援URL字元
UIKeyboardTypeNumberPad, //數字鍵台
UIKeyboardTypePhonePad, // 電話鍵盤
UIKeyboardTypeNamePhonePad, // 電話鍵盤,也支援輸入人名字
UIKeyboardTypeEmailAddress, // 用於輸入電子郵件地址的鍵盤
} UIKeyboardType;
用法用例:
複製代碼 代碼如下:
textView.keyboardtype = UIKeyboardTypeNumberPad;
二、鍵盤外觀
複製代碼 代碼如下:
typedef enum {
UIKeyboardAppearanceDefault, // 預設面板:淺灰色
UIKeyboardAppearanceAlert, //深灰/石墨色
} UIKeyboardAppearance;
用法用例:
複製代碼 代碼如下:
textView.keyboardAppearance=UIKeyboardAppearanceDefault;
三、斷行符號鍵
複製代碼 代碼如下:
typedef enum {
UIReturnKeyDefault, //預設:灰色按鈕,標有Return
UIReturnKeyGo, //標有Go的藍色按鈕
UIReturnKeyGoogle, //標有Google的藍色按鈕,用於搜尋
UIReturnKeyJoin, //標有Join的藍色按鈕
UIReturnKeyNext, //標有Next的藍色按鈕
UIReturnKeyRoute, //標有Route的藍色按鈕
UIReturnKeySearch, //標有Search的藍色按鈕
UIReturnKeySend, //標有Send的藍色按鈕
UIReturnKeyYahoo, //標有Yahoo!的藍色按鈕,用於搜尋
UIReturnKeyDone, //標有Done的藍色按鈕
UIReturnKeyEmergencyCall, //緊急電話按鈕
} UIReturnKeyType;
用法用例:
複製代碼 代碼如下:
textView.returnKeyType=UIReturnKeyGo;
四、自動大寫
複製代碼 代碼如下:
typedef enum {
UITextAutocapitalizationTypeNone, //不自動大寫
UITextAutocapitalizationTypeWords, //單字首大寫
UITextAutocapitalizationTypeSentences, //句子首字母大寫
UITextAutocapitalizationTypeAllCharacters, //所有字母大寫
} UITextAutocapitalizationType;
用法用例:
複製代碼 代碼如下:
textField.autocapitalizationType = UITextAutocapitalizationTypeWords;
五、自動校正
複製代碼 代碼如下:
typedef enum {
UITextAutocorrectionTypeDefault,//預設
UITextAutocorrectionTypeNo,//不自動校正
UITextAutocorrectionTypeYes,//自動校正
} UITextAutocorrectionType;
用法用例:
複製代碼 代碼如下:
textField.autocorrectionType = UITextAutocorrectionTypeYes;
六、安全文本輸入
複製代碼 代碼如下:
textView.secureTextEntry=YES;
開啟安全輸入主要是用於密碼或一些私人資料的輸入,此時會禁用自動校正和自此緩衝。
七、開啟鍵盤遮住View的問題解決方案
預設情況下開啟鍵盤會遮住下面的view,帶來一點點困擾,不過這不是什麼大問題,我們使用點小小的手段就可以解決。
首先我們要知道鍵盤的高度是固定不變的,不過在IOS 5.0 以後鍵盤的高度貌似不是216了,不過不要緊,我們調整調整就是了:
我們採取的方法就是在textField(有可能是其他控制項)接收到彈出鍵盤事件時把self.view整體上移216px了(我們就以iPhone豎屏為例了)。
首先我們要設定textField的代理,我們就設為當前控制器了。
複製代碼 代碼如下:
textField,delegate=self;
然後我們在當前控制器實現下面三個委託方法:
複製代碼 代碼如下:
- (void)textFieldDidBeginEditing:(UITextField *)textField
{ //當點觸textField內部,開始編輯都會調用這個方法。textField將成為first responder
NSTimeInterval animationDuration = 0.30f;
CGRect frame = self.view.frame;
frame.origin.y -=216;
frame.size.height +=216;
self.view.frame = frame;
[UIView beginAnimations:@"ResizeView" context:nil];
[UIView setAnimationDuration:animationDuration];
self.view.frame = frame;
[UIView commitAnimations];
}
複製代碼 代碼如下:
- (BOOL)textFieldShouldReturn:(UITextField *)textField
{//當使用者按下ruturn,把焦點從textField移開那麼鍵盤就會消失了
NSTimeInterval animationDuration = 0.30f;
CGRect frame = self.view.frame;
frame.origin.y +=216;
frame.size. height -=216;
self.view.frame = frame;
//self.view移回原位置
[UIView beginAnimations:@"ResizeView" context:nil];
[UIView setAnimationDuration:animationDuration];
self.view.frame = frame;
[UIView commitAnimations];
[textField resignFirstResponder];
}