<UITextFieldDelegate>
#pragma mark - UITextFieldDelegate
#pragma mark - 將要改變text時調用
- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string {
if ([string isEqualToString:@"\n"]) { // 回車收起鍵盤
[textField resignFirstResponder];
return NO;
}
// 判斷輸入的是否是數字
NSString *regex = @"[0-9]*";
NSPredicate *pred = [NSPredicate predicateWithFormat:@"SELF MATCHES %@",regex];
if ([pred evaluateWithObject:string]) {
// doing something
return YES;
}
return NO;
}
一. keyboardType: 鍵盤類型
1.UIKeyboardTypeDefault // 默認鍵盤, 支持所有字符
2.UIKeyboardTypeASCIICapable // 顯示可以輸入ASCII字符的鍵盤。
3.UIKeyboardTypeNumbersAndPunctuation // 數字和各種標點符號
4.UIKeyboardTypeURL // URL鍵盤, 有.com按鈕, 只支持URL字符
5.UIKeyboardTypeNumberPad // 數字鍵盤
6.UIKeyboardTypePhonePad // 電話鍵盤
7.UIKeyboardTypeNamePhonePad // 電話鍵盤, 也支持輸入人名
8.UIKeyboardTypeEmailAddress // 用於輸入電子郵件地址的鍵盤
9.UIKeyboardTypeDecimalPad IOS(4_1) // 帶小數點的數字板。
10.UIKeyboardTypeTwitter IOS(5_0) // 爲twitter文本條目優化的類型(易於訪問@ #)
11.UIKeyboardTypeWebSearch IOS(7_0) // 帶有面向url的默認鍵盤類型。(空格很明顯)。
12.UIKeyboardTypeASCIICapableNumberPad IOS(10_0) // 一個數字板(0-9),總是ASCII數字。
二. keyboardAppearance: 鍵盤外觀顏色
typedef NS_ENUM(NSInteger, UIKeyboardAppearance) {
UIKeyboardAppearanceDefault, // 默認灰色.
UIKeyboardAppearanceDark NS_ENUM_AVAILABLE_IOS(7_0), // 深灰色
UIKeyboardAppearanceLight NS_ENUM_AVAILABLE_IOS(7_0), // 同UIKeyboardAppearanceDefault
UIKeyboardAppearanceAlert = UIKeyboardAppearanceDark, // Deprecated
};
三. returnKeyType: return按鈕類型
typedef NS_ENUM(NSInteger, UIReturnKeyType) {
UIReturnKeyDefault, //默認:灰色按鈕,標有Return
UIReturnKeyGo, // Go的藍色按鈕
UIReturnKeyGoogle, // Google的藍色按鈕,用於搜索
UIReturnKeyJoin, // Join的藍色按鈕
UIReturnKeyNext, // Next的藍色按鈕
UIReturnKeyRoute, // Route的藍色按鈕
UIReturnKeySearch, // Search的藍色按鈕
UIReturnKeySend, // Send的藍色按鈕
UIReturnKeyYahoo, // Yahoo!的藍色按鈕,用於搜索
UIReturnKeyDone, // Done的藍色按鈕
UIReturnKeyEmergencyCall, // EmergencyCall的藍色 (緊急呼叫) 按鈕
UIReturnKeyContinue NS_ENUM_AVAILABLE_IOS(9_0), // //標有Done的灰色按鈕
};
四. autocapitalizationType: 大小寫設置
typedef NS_ENUM(NSInteger, UITextAutocapitalizationType) {
UITextAutocapitalizationTypeNone, // 不自動大寫
UITextAutocapitalizationTypeWords, // 單詞首字母大寫
UITextAutocapitalizationTypeSentences, // 句子首字母大寫
UITextAutocapitalizationTypeAllCharacters, // 所有字母大寫
};
五. autocorrectionType: 自動更正
typedef NS_ENUM(NSInteger, UITextAutocorrectionType) {
UITextAutocorrectionTypeDefault,
UITextAutocorrectionTypeNo, // 不自動更正
UITextAutocorrectionTypeYes, // 自動更正
};
六. secureTextEntry: 安全輸入 YES or NO
七. enablesReturnKeyAutomatically 換行自動檢測是否允許
// 默認NO YES時:text爲空return按鈕 disenable(禁用)