iOS開發鍵盤控制不輸入特殊字元(結果:點選特殊字元不顯示在輸入框內)
- (void)inputTextChange:(NSNotification *)obj
{
if (!self.maxLength || self.maxLength == 0) {
return;
}
UITextField *textField = (UITextField *)obj.object;
if (self.isChneck) {
NSCharacterSet *nameCharacters = [[NSCharacterSet
characterSetWithCharactersInString:@"abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789"
if (textField.text.length < 1) {
return;
}
//取出最後一位
NSString *lastStr = [textField.textsubstringFromIndex:textField.text.length-1];
NSRange userNameRange = [lastStr rangeOfCharacterFromSet:nameCharacters];
//最後一位是特殊字元
if (userNameRange.location != NSNotFound) {
textField.text = [textField.textsubstringToIndex:(textField.text.length - 1)];
}
}
}
注意:self.isChneck為.h屬性,可認為是外在開關,為YES時有效.
下面是ios鍵盤的一些設定,僅供參考.(以下轉載"程式設計是一門藝術"見諒)[部分]
一、鍵盤風格
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,//不自動更正 ----- 聯想功能關閉,輸入h,會有this the 等h開頭的英文單詞供選擇,
- UITextAutocorrectionTypeYes,//自動更正 ----- 聯想功能開啟,輸入h,會有this the 等h開頭的英文單詞供選擇,
- } UITextAutocorrectionType;
textField.autocorrectionType = UITextAutocorrectionTypeYes;
六、安全文字輸入
textView.secureTextEntry=YES;
開啟安全輸入主要是用於密碼或一些私人資料的輸入,此時會禁用自動更正和自此快取。