1. 程式人生 > >iOS開發鍵盤控制不輸入特殊字元(結果:點選特殊字元不顯示在輸入框內)

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"

invertedSet];

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種風格鍵盤。

  1. typedef enum {  
  2.     UIKeyboardTypeDefault,                // 預設鍵盤:支援所有字元   
  3.     UIKeyboardTypeASCIICapable,           // 支援ASCII的預設鍵盤   
  4.     UIKeyboardTypeNumbersAndPunctuation,  // 標準電話鍵盤,支援+*#等符號   
  5.     UIKeyboardTypeURL,                    // URL鍵盤,有.com按鈕;只支援URL字元   
  6.     UIKeyboardTypeNumberPad,              //數字鍵盤   
  7.     UIKeyboardTypePhonePad,               // 電話鍵盤   
  8.     UIKeyboardTypeNamePhonePad,           // 電話鍵盤,也支援輸入人名字   
  9.     UIKeyboardTypeEmailAddress,           // 用於輸入電子郵件地址的鍵盤   
  10. } UIKeyboardType;  

用法用例:

textView.keyboardtype= UIKeyboardTypeNumberPad;

二、鍵盤外觀

  1. typedef enum {  
  2.     UIKeyboardAppearanceDefault,    // 預設外觀:淺灰色   
  3.     UIKeyboardAppearanceAlert,      //深灰/石墨色   
  4. } UIKeyboardAppearance;  

用法用例:

textView.keyboardAppearance=UIKeyboardAppearanceDefault;

三、回車鍵

  1. typedef enum {  
  2.     UIReturnKeyDefault, //預設:灰色按鈕,標有Return
  3.     UIReturnKeyGo,  //標有Go的藍色按鈕
  4.     UIReturnKeyGoogle, //標有Google的藍色按鈕,用於搜尋
  5.     UIReturnKeyJoin, //標有Join的藍色按鈕
  6.     UIReturnKeyNext, //標有Next的藍色按鈕
  7.     UIReturnKeyRoute, //標有Route的藍色按鈕
  8.     UIReturnKeySearch, //標有Search的藍色按鈕
  9.     UIReturnKeySend, //標有Send的藍色按鈕
  10.     UIReturnKeyYahoo, //標有Yahoo!的藍色按鈕,用於搜尋
  11.     UIReturnKeyDone, //標有Done的藍色按鈕
  12.     UIReturnKeyEmergencyCall, //緊急呼叫按鈕
  13. } UIReturnKeyType; 

用法用例:

textView.returnKeyType=UIReturnKeyGo;

四、自動大寫

  1. typedef enum {  
  2.     UITextAutocapitalizationTypeNone, //不自動大寫   
  3.     UITextAutocapitalizationTypeWords, //單詞首字母大寫   
  4.     UITextAutocapitalizationTypeSentences, //句子首字母大寫   
  5.     UITextAutocapitalizationTypeAllCharacters, //所有字母大寫 ---- 預設鍵盤的大寫  
  6. } UITextAutocapitalizationType;  
用法用例:

textField.autocapitalizationType = UITextAutocapitalizationTypeWords;

五、自動更正

  1. typedef enum {  
  2.     UITextAutocorrectionTypeDefault,//預設   
  3.     UITextAutocorrectionTypeNo,//不自動更正 ----- 聯想功能關閉,輸入h,會有this  the 等h開頭的英文單詞供選擇,   
  4.     UITextAutocorrectionTypeYes,//自動更正   -----  聯想功能開啟,輸入h,會有this  the 等h開頭的英文單詞供選擇,
  5. } UITextAutocorrectionType;  
用法用例:

textField.autocorrectionType = UITextAutocorrectionTypeYes;

六、安全文字輸入

textView.secureTextEntry=YES;

開啟安全輸入主要是用於密碼或一些私人資料的輸入,此時會禁用自動更正和自此快取。