1 1.UITextField的初始化和設置 2 textField = [[UITextField alloc] initWithFrame:CGRectMake(120.0f, 80.0f, 150.0f, 30.0f)]; 3 [textField setBorderStyle:UITextBorderStyleRoundedRect]; //外框類型 4 5 textField.placeholder = @"password"; //默認顯示的字 6 7 textField.secureTextEntry = YES; //密碼 8 9 textField.autocorrectionType = UITextAutocorrectionTypeNo; 10 textField.autocapitalizationType = UITextAutocapitalizationTypeNone; 11 textField.returnKeyType = UIReturnKeyDone; 12 textField.clearButtonMode = UITextFieldViewModeWhileEditing; //編輯時會出現個修改X 13 14 textField.delegate = self; 15 2.要實現的Delegate方法,關閉鍵盤 16 - (BOOL)textFieldShouldReturn:(UITextField *)textField 17 { 18 [self.textField resignFirstResponder]; 19 return YES; 20 } 21 3. 能夠在UITextField使用下面方法,按return鍵返回 22 -(IBAction) textFieldDone:(id) sender 23 { 24 [textFieldName resignFirstResponder]; 25 } 26 連接TextField控件的"Did end on exit" 27 最右側加圖片是如下代碼, 28 UIImageView *imgv=[[UIImageView alloc] initWithImage:[UIImage imageNamed:@"right.png"]]; 29 text.rightView=imgv; 30 text.rightViewMode = UITextFieldViewModeAlways; 31 32 若是是在最左側加圖片就換成: 33 text.leftView=imgv; 34 text.leftViewMode = UITextFieldViewModeAlways; 35 UITextField 繼承自 UIControl,此類中有一個屬性contentVerticalAlignment 36 因此想讓UITextField裏面的text垂直居中能夠這樣寫: 37 text.contentVerticalAlignment = UIControlContentVerticalAlignmentCenter; 38 查看函數的方法: 39 按住command鍵雙擊進入函數聲明 40 按住alt鍵雙擊進入doc文檔 41 /////////////////////////////////////////////////////////////// 42 文本框經常使用方法: 43 如何用程序刪除文本框中選中的文本 44 [textView delete: nil]; 45 /////////////////////////////////////////////////////////////// 46 如何限制文本框只能輸入數字: 47 創建NSNumberFormatter的子類,增長這個方法,將formatter連接至文本框。 48 49 - (BOOL) isPartialStringValid: (NSString **) partialStringPtr 50 proposedSelectedRange: (NSRangePointer) proposedSelRangePtr 51 originalString: (NSString *) origString 52 originalSelectedRange: (NSRange) origSelRange 53 errorDescription: (NSString **) error 54 { 55 NSCharacterSet *nonDigits; 56 NSRange newStuff; 57 NSString *newStuffString; 58 59 nonDigits = [[NSCharacterSet decimalDigitCharacterSet] invertedSet]; 60 newStuff = NSMakeRange(origSelRange.location, 61 proposedSelRangePtr->location 62 - origSelRange.location); 63 newStuffString = [*partialStringPtr substringWithRange: newStuff]; 64 65 if ([newStuffString rangeOfCharacterFromSet: nonDigits 66 options: NSLiteralSearch].location != NSNotFound) { 67 *error = @"不是數字"; 68 return (NO); 69 } else { 70 *error = nil; 71 return (YES); 72 } 73 74 } 75 /////////////////////////////////////////////////////////////// 76 從文本框獲取十六進制數據的代碼 77 char singleNumberString[3] = {'\0','\0','\0'}; 78 uint32_t singleNumber = 0; 79 uint32_t i = 0; 80 NSMutableData *data = [NSMutableData data]; 81 //從文本框獲取到得數據 82 const char *buf = [[_hexToSendTextField text] UTF8String]; 83 //轉換爲十六進制 84 for(i = 0; i < strlen(buf); i+=2) 85 { 86 if(((i+1) < len && isxdigit(buf) && (isxdigit(buf[i+1]))) 87 { 88 singleNumberString[0] = buf; 89 singleNumberString[1] = buf[i+1]; 90 sscanf(singleNumberString, "%x", &singleNumber); 91 [data appendBytes:(void*)(&tmp) length:1]; 92 } 93 else 94 { 95 break; 96 } 97 } 98 //輸出 99 NSLog(@"%@", data); 100 ///////////////////////////////////////////////////////////// 101 點擊 UITextView 輸入文字,光標都從最初點開始 102 - (void)textViewDidChangeSelection:(UITextView *)textView 103 { 104 NSRange range; 105 range.location = 0; 106 range.length = 0; 107 textView.selectedRange = range; 108 } 109 /////////////////////////////////////////////////////////// 110 軟鍵盤 111 在登陸頁面要實現用戶名和密碼,密碼要是點點格式,引入當前頁面光標要停留在用戶名選項,軟鍵盤要彈出界面。以下圖: 112 彈出鍵盤: 113 [username becomeFirstResponder]; 114 取消鍵盤: 115 [username resignFirstResponder]; 116 密碼保護: 117 password.secureTextEntry=YES; 118 ////////////////////////////////////////////////////////////////// 119 1.UITextField的初始化和設置 120 textField = [[UITextField alloc] initWithFrame:CGRectMake(120.0f, 80.0f, 150.0f, 30.0f)]; 121 [textField setBorderStyle:UITextBorderStyleRoundedRect]; //外框類型 122 textField.placeholder = @"password"; //默認顯示的字 123 textField.secureTextEntry = YES; //密碼 124 textField.autocorrectionType = UITextAutocorrectionTypeNo; 125 textField.autocapitalizationType = UITextAutocapitalizationTypeNone; 126 textField.returnKeyType = UIReturnKeyDone; 127 textField.clearButtonMode = UITextFieldViewModeWhileEditing; //編輯時會出現個修改X 128 textField.delegate = self; 129 2.要實現的Delegate方法,關閉鍵盤 130 - (BOOL)textFieldShouldReturn:(UITextField *)textField 131 { 132 [self.textField resignFirstResponder]; 133 return YES; 134 } 135 3. 能夠在UITextField使用下面方法,按return鍵返回 136 -(IBAction) textFieldDone:(id) sender 137 { 138 [textFieldName resignFirstResponder]; 139 } 140 連接TextField控件的"Did end on exit" 141 //////////////////////////////////////////////////////////////////// 142 限制輸入文本的長度 143 - (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string 144 { 145 if (range.location >= MAX_LENGTH) 146 return NO; // return NO to not change text 147 return YES; 148 } 149 if (textField.text.length >= 10 && range.length == 0) 150 return NO; 151 return YES; 152 - (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string 153 { 154 if ([textField.text length] > MAXLENGTH) 155 { 156 textField.text = [textField.text substringToIndex:MAXLENGTH-1]; 157 return NO; 158 } 159 return YES; 160 } 161 ////////////////////////////////////////////////////////////////////// 162 使用UITextFieldDelegate來隱藏鍵盤 163 在iPhone界面上,時常會須要當用戶輸入完內容後,隱藏鍵盤。 固然有不少方法,今天只介紹使用UITextFieldDelegate這個協議實現隱藏鍵盤。 164 其實很簡單, 須要三步: 165 1. 在你的控制器類中,加入UITextFieldDelegate這個協議 166 如:@interface AddItemViewController : UIViewController <UITextFieldDelegate> 167 2. 在使用了UITextFieldDelegate協議的控制器類的實現中,加入- (BOOL)textFieldShouldReturn:方法。 168 - (BOOL)textFieldShouldReturn:(UITextField *)textField { 169 170 [textField resignFirstResponder]; 171 return YES; 172 } 173 //設置焦點: 174 175 [UITextField becomeFirstResponder]; 176 177 3. 將xib文件中的TextField控件的delegate變量指向到以前使用UITextFieldDelegate協議的那個控制器類,將 TextField的delegate IBOutlet變量右鍵連接到前面的控制器類的實例上。或者使用代碼方式,指定相關TextField的delegate變量。 178 179 - (void)viewDidLoad 180 181 { 182 183 [super viewDidLoad]; 184 185 itemNameField.delegate = self; 186 187 priceField.delegate = self; 188 189 }