UITextField

  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 }
相關文章
相關標籤/搜索