UITextField屬性和委托使用詳解

鍵盤事件
[UIKeyboardWillShowNotification]
[UIKeyboardDidShowNotification]
[UIKeyboardWillHideNotification]
[UIKeyboardDidHideNotification]
使用場景:
計算鍵盤的高度瑟捣,調(diào)整UI布局
根據(jù)鍵盤顯示隱藏執(zhí)行UI的動畫

1.使用方法
A.注冊事件
[[NSNotificationCenter defaultCenter]addObserver:self selector:@selector(keyboardWillShow:) name:UIKeyboardWillShowNotification object:nil];
B.接收事件
-(void)keyboardWillShow:(NSNotification)notification{
NSDictionary
info=[notification userInfo];
CGSize kbSize=[[infoobjectForKey:UIKeyboardFrameEndUserInfoKey]CGRectValue].size;
NSLog(@"keyboard changed, keyboard width = %f, height = %f",
kbSize.width,kbSize.height);
}
C.NSNotification需要remove
-(void)viewDidUnload{
[superviewDidUnload];
[[NSNotificationCenter defaultCenter]removeObserver:self];
}
2.屬性(Attributes)
A.UITextField的text屬性與userInteractionEnabled共用惕澎。
textField.text = @"密碼輸入框"
// 輸入框默認輸入文本瘫俊,有時需求UITextField只可顯示不可編輯的,此時起展示作用:用此屬性設(shè)置需要顯示的文本然后設(shè)置UITextField不可交互textField.userInteractionEnabled = NO;
textField.userInteractionEnabled = NO;

B.placeholder設(shè)置字體顏色,大小
方法一:
textField.placeholder = @"密碼輸入框"; // 提示文本
[textField setValue:[UIColor colorWithRed:79/255.0f green:79/255.0f blue:79/255.0f alpha:0.5f] forKeyPath:@"_placeholderLabel.textColor"];
[textField setValue:[UIFont boldSystemFontOfSize:20] forKeyPath:@"_placeholderLabel.font"];

方法二:
textField.attributedPlaceholder = [[NSAttributedString alloc] initWithString:@"密碼輸入框" attributes:@{NSForegroundColorAttributeName: [UIColor colorWithRed:79/255.0f green:79/255.0f blue:79/255.0f alpha:0.5f],NSFontAttributeName : [UIFont systemFontOfSize:20 weight:6],}];

C.邊框
textField.borderStyle = UITextBorderStyleLine;
//效果如下圖所示
typedef NS_ENUM(NSInteger, UITextBorderStyle) {
UITextBorderStyleNone,
UITextBorderStyleLine,
UITextBorderStyleBezel,
UITextBorderStyleRoundedRect
};


783355-bf8c784195d0ee90.png

D.font屬性
textField.font = [UIFont systemFontOfSize:14.0f];
textField.textColor = [UIColor redColor];
根據(jù)輸入文字動態(tài)調(diào)整字體大小,需要設(shè)置一個最小字體大小
textField.adjustsFontSizeToFitWidth = YES;
textField.minimumFontSize = 10.0;//設(shè)置最小字體

E.設(shè)置輸入內(nèi)容的對其方式
textField.textAlignment = NSTextAlignmentLeft;
NSTextAlignmentLeft = 0, // Visually left aligned
NSTextAlignmentCenter = 1, // Visually centered
NSTextAlignmentRight = 2, // Visually right aligned
NSTextAlignmentRight = 1, // Visually right aligned
NSTextAlignmentCenter = 2, // Visually centered
NSTextAlignmentJustified = 3, // Fully-justified. The last line in a paragraph is natural-aligned.
NSTextAlignmentNatural = 4, // Indicates the default alignment for script

[textField setContentVerticalAlignment:UIControlContentVerticalAlignmentCenter];
[textField setContentHorizontalAlignment:UIControlContentHorizontalAlignmentRight];

UIControlContentVerticalAlignmentCenter = 0,
UIControlContentVerticalAlignmentTop = 1,
UIControlContentVerticalAlignmentBottom = 2,
UIControlContentVerticalAlignmentFill = 3,

UIControlContentHorizontalAlignmentCenter = 0,
UIControlContentHorizontalAlignmentLeft = 1,
UIControlContentHorizontalAlignmentRight = 2,
UIControlContentHorizontalAlignmentFill = 3,

F.與鍵盤相關(guān)的屬性
textField.keyboardType = UIKeyboardTypeNumberPad; //設(shè)置鍵盤的樣式
typedef enum {
UIKeyboardTypeDefault, 默認鍵盤,支持所有字符
UIKeyboardTypeASCIICapable, 支持ASCII的默認鍵盤
UIKeyboardTypeNumbersAndPunctuation, 標準電話鍵盤,支持+*#字符
UIKeyboardTypeURL, URL鍵盤,支持.com按鈕 只支持URL字符
UIKeyboardTypeNumberPad, 數(shù)字鍵盤
UIKeyboardTypePhonePad, 電話鍵盤
UIKeyboardTypeNamePhonePad, 電話鍵盤虽界,也支持輸入人名
UIKeyboardTypeEmailAddress, 用于輸入電子 郵件地址的鍵盤
UIKeyboardTypeDecimalPad, 數(shù)字鍵盤 有數(shù)字和小數(shù)點
UIKeyboardTypeTwitter, 優(yōu)化的鍵盤,方便輸入@涛菠、#字符
UIKeyboardTypeAlphabet = UIKeyboardTypeASCIICapable,
} UIKeyboardType;

textField.autocapitalizationType = UITextAutocapitalizationTypeNone;  //首字母是否自動大寫
typedef enum {
    UITextAutocapitalizationTypeNone, 不自動大寫
    UITextAutocapitalizationTypeWords,  單詞首字母大寫
   UITextAutocapitalizationTypeSentences,  句子的首字母大寫
   UITextAutocapitalizationTypeAllCharacters, 所有字母都大寫
} UITextAutocapitalizationType;



textField.keyboardAppearance=UIKeyboardAppearanceDefault; //鍵盤外觀
typedef enum {
   UIKeyboardAppearanceDefault莉御, 默認外觀,淺灰色
    UIKeyboardAppearanceAlert俗冻,     深灰 石墨色
} UIReturnKeyType;


textField.returnKeyType =UIReturnKeyDone;   //return鍵變成什么鍵
typedef enum {
   UIReturnKeyDefault, 默認 灰色按鈕礁叔,標有Return
    UIReturnKeyGo,      標有Go的藍色按鈕
   UIReturnKeyGoogle, 標有Google的藍色按鈕,用語搜索
   UIReturnKeyJoin, 標有Join的藍色按鈕
   UIReturnKeyNext, 標有Next的藍色按鈕
   UIReturnKeyRoute, 標有Route的藍色按鈕
   UIReturnKeySearch, 標有Search的藍色按鈕
   UIReturnKeySend, 標有Send的藍色按鈕
   UIReturnKeyYahoo, 標有Yahoo的藍色按鈕
   UIReturnKeyYahoo, 標有Yahoo的藍色按鈕
    UIReturnKeyEmergencyCall, 緊急呼叫按鈕
} UIReturnKeyType;

G.其他相關(guān)屬性
以下幾個屬性通常不用迄薄,通常為自定義控件先設(shè)置一個UIView UIView上面再放UIImageview 和 UITextField琅关,設(shè)置UIView的boder屬性以滿足要求。
leftView
Property
leftViewMode
Property
rightView
Property
rightViewMode
Property

清空輸入框讥蔽,常見于密碼輸入錯入重新輸入時會清空輸入框涣易。
textField.clearButtonMode = UITextFieldViewModeWhileEditing;// sets when the clear button shows up編輯的時候清空輸入框
clearsOnInsertion// whether inserting text replaces the previous contents.插入的時候清空輸入框
typedef NS_ENUM(NSInteger, UITextFieldViewMode) {
UITextFieldViewModeNever,從不出現(xiàn)
UITextFieldViewModeWhileEditing,編輯時出現(xiàn)
UITextFieldViewModeUnlessEditing,除了編輯外都出現(xiàn)
UITextFieldViewModeAlways 一直出現(xiàn)
};

textField.autocorrectionType = UITextAutocorrectionTypeNo;  //是否自動糾錯
typedef enum {
     UITextAutocorrectionTypeDefault, 默認
     UITextAutocorrectionTypeNo,   不自動糾錯
     UITextAutocorrectionTypeYes,  自動糾錯
}  UITextAutocorrectionType;
secureTextEntry  啟用/禁用 UITextField對象的安全輸入功能。如果設(shè)置成YES則類似于密碼框內(nèi)  容將顯示為圓點冶伞。
autocorrectionType  啟用/禁用 UITextFieldUI想的拼寫建議功能新症,根據(jù)用戶輸入錯誤的單詞提供 修改建議
autocapitalizationType  設(shè)置 UITextField的自動大寫功能,
none:關(guān)閉大寫功能
words: 單詞
sentences: 句子
allcharacters:所有字母
四種類型
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末响禽,一起剝皮案震驚了整個濱河市徒爹,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌芋类,老刑警劉巖隆嗅,帶你破解...
    沈念sama閱讀 210,914評論 6 490
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異侯繁,居然都是意外死亡胖喳,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 89,935評論 2 383
  • 文/潘曉璐 我一進店門巫击,熙熙樓的掌柜王于貴愁眉苦臉地迎上來禀晓,“玉大人,你說我怎么就攤上這事坝锰〈饫粒” “怎么了?”我有些...
    開封第一講書人閱讀 156,531評論 0 345
  • 文/不壞的土叔 我叫張陵顷级,是天一觀的道長凫乖。 經(jīng)常有香客問我,道長弓颈,這世上最難降的妖魔是什么帽芽? 我笑而不...
    開封第一講書人閱讀 56,309評論 1 282
  • 正文 為了忘掉前任,我火速辦了婚禮翔冀,結(jié)果婚禮上导街,老公的妹妹穿的比我還像新娘。我一直安慰自己纤子,他們只是感情好搬瑰,可當我...
    茶點故事閱讀 65,381評論 5 384
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著控硼,像睡著了一般泽论。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上卡乾,一...
    開封第一講書人閱讀 49,730評論 1 289
  • 那天翼悴,我揣著相機與錄音,去河邊找鬼幔妨。 笑死鹦赎,一個胖子當著我的面吹牛,可吹牛的內(nèi)容都是我干的陶冷。 我是一名探鬼主播钙姊,決...
    沈念sama閱讀 38,882評論 3 404
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼埂伦!你這毒婦竟也來了煞额?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 37,643評論 0 266
  • 序言:老撾萬榮一對情侶失蹤沾谜,失蹤者是張志新(化名)和其女友劉穎膊毁,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體基跑,經(jīng)...
    沈念sama閱讀 44,095評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡婚温,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,448評論 2 325
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了媳否。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 38,566評論 1 339
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖瘪菌,靈堂內(nèi)的尸體忽然破棺而出阵苇,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 34,253評論 4 328
  • 正文 年R本政府宣布,位于F島的核電站,受9級特大地震影響瓤介,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜赘那,卻給世界環(huán)境...
    茶點故事閱讀 39,829評論 3 312
  • 文/蒙蒙 一刑桑、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧募舟,春花似錦祠斧、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,715評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至觅彰,卻和暖如春吩蔑,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背填抬。 一陣腳步聲響...
    開封第一講書人閱讀 31,945評論 1 264
  • 我被黑心中介騙來泰國打工烛芬, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人飒责。 一個月前我還...
    沈念sama閱讀 46,248評論 2 360
  • 正文 我出身青樓赘娄,卻偏偏與公主長得像,于是被迫代替她去往敵國和親宏蛉。 傳聞我的和親對象是個殘疾皇子遣臼,可洞房花燭夜當晚...
    茶點故事閱讀 43,440評論 2 348

推薦閱讀更多精彩內(nèi)容