此中所述兩種UI控件,皆為文本輸入控件晌姚,即可接收用戶輸入的UI控件邑蒋。
>>>UITextField是作為文字輸入控件,分別可以作為常用的用戶名萎羔,手機號和密碼的輸入框,下面是UITextField的一些屬性液走。
///1. UITextField輸入框中顯示提示信息
UITextField *textField = [[UITextField alloc]init];
textField.placeholder=@"提示信息"
///2. 修改placeholder中的字體顏色及字體大小:
[inputNumber setValue:[UIColor grayColor] forKeyPath:@"_placeholderLabel.textColor"];
[inputNumber setValue:[UIFont boldSystemFontOfSize:21.0] forKeyPath:@"_placeholderLabel.font"];
///3. UITextField輸入框輸入時需要使用安全文本輸入或者輸入密碼:
textField.secureTextEntry = YES
///4. UITextField顯示在框中最后顯示的“x”清除按鈕及類型:
textField.clearButtonMode = UITextFieldViewModeWhileEditing/...
///5. UITextField調(diào)用虛擬鍵盤時return顯示
textField.returnKeyType = UIReturnKeyDone/UIReturnKeySearch.... //當(dāng)選擇UIReturnKeyDone時可以增加監(jiān)聽器作為放棄第一響應(yīng)者
///6. 根據(jù)不同的輸入框更改出現(xiàn)的虛擬鍵盤:
inputNumber.keyboardType = UIKeyboardTypeNumberPad/UIKeyboardType...;
///7. 在使用純代碼創(chuàng)建UITextField時贾陷,需要設(shè)置邊框borderStyle:缘眶,以及borderWidth和borderColor。
>>>UITextView是多行文本控件
有些屬性類似等同于UITextField
UITextView各種方法屬性使用:
textView.layer.borderColor = [UIColor grayColor].CGColor;
textView.layer.borderWidth =1.0;
textView.layer.cornerRadius =5.0;
>>> 在使用輸入框控件時可設(shè)置為實時獲取輸入框內(nèi)容
使用UITextFieldDelegate代理方法
// 明文切換密文后避免被清空 此方法可獲取輸入框內(nèi)容
- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string
{
// 獲取輸入框內(nèi)容
NSString *toBeString = [textField.text stringByReplacingCharactersInRange:range withString:string];
// 打印輸入框的內(nèi)容
NSLog(@"%@",toBeString);
if(textField == self.textPassword && textField.isSecureTextEntry) {
textField.text = toBeString;
return NO;
}
return YES;
}
>>>輸入框中髓废,明文和密文之間切換
//自定義方法
// UItextField輸入框密文巷懈、明文之間的切換
- (void)showAndHidePassword:(UIButton *)sender {
// 避免明文/密文切換后光標(biāo)位置偏移,ios10 以后自動修復(fù)光標(biāo)問題
//self.textField.enabled = NO;
self.textPassword.secureTextEntry = sender.selected;
sender.selected = !sender.selected;
// self.textField.enabled = YES;
//[self.textField becomeFirstResponder];
}
>>>設(shè)置點擊虛擬鍵盤return 后慌洪,可關(guān)閉虛擬鍵盤
關(guān)閉虛擬鍵盤顶燕,還可以使用其它方法去調(diào)用textField.hidden = YES; 隱藏鍵盤,或者取消鍵盤的第一響應(yīng)也可冈爹。
以上關(guān)閉虛擬鍵盤的方法涌攻,大多在調(diào)用虛擬鍵盤輸入完畢后,需要進行下一步操作犯助,關(guān)閉鍵盤時使用。
- (BOOL)textFieldShouldReturn:(UITextField *)textField {
[textField resignFirstResponder];
return YES;
}
上面的關(guān)閉虛擬鍵盤维咸,引出了一個新的問題剂买,就是當(dāng)虛擬鍵盤出現(xiàn),是否有過遮擋某些控件的時候癌蓖?那么問題就來了瞬哼。一般處理邏輯有兩種:1. 當(dāng)鍵盤出現(xiàn)時,整個視圖全部上移足夠的距離租副,以便展示所有需要顯示的控件坐慰。2. 使用滑動控件,UIScrollView控件用僧,可在設(shè)置了控件的內(nèi)容展示范圍后结胀,自由滑動展示的范圍,所見范圍不受所有控件遮擋和約束责循。- - - >后面我也會總結(jié)出糟港,當(dāng)鍵盤遮擋輸入框時,或者遮擋控件時的幾種處理方法院仿。
以上為UITextField/UITextView基本的使用,不以偏概全秸抚,只授之以漁速和,如果您有UITextField/UITextView控件的更好使用歡迎留言交流!