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 }