博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
UITextField的总结
阅读量:5754 次
发布时间:2019-06-18

本文共 5644 字,大约阅读时间需要 18 分钟。

1.UITextField的初始化和设置   textField = [[UITextField alloc] initWithFrame:CGRectMake(120.0f, 80.0f, 150.0f, 30.0f)];   [textField setBorderStyle:UITextBorderStyleRoundedRect]; //外框类型   textField.placeholder = @"password"; //默认显示的字   textField.secureTextEntry = YES; //密码   textField.autocorrectionType = UITextAutocorrectionTypeNo;   textField.autocapitalizationType = UITextAutocapitalizationTypeNone;   textField.returnKeyType = UIReturnKeyDone;   textField.clearButtonMode = UITextFieldViewModeWhileEditing; //编辑时会出现个修改X   textField.delegate = self; 2.要实现的Delegate方法,关闭键盘   - (BOOL)textFieldShouldReturn:(UITextField *)textField   {       [self.textField resignFirstResponder];       return YES;   } 3. 可以在UITextField使用下面方法,按return键返回 -(IBAction) textFieldDone:(id) sender {
[textFieldName resignFirstResponder]; } 链接TextField控件的"Did end on exit" 最右侧加图片是以下代码, UIImageView *imgv=[[UIImageView alloc] initWithImage:[UIImage imageNamed:@"right.png"]]; text.rightView=imgv; text.rightViewMode = UITextFieldViewModeAlways; 如果是在最左侧加图片就换成: text.leftView=imgv; text.leftViewMode = UITextFieldViewModeAlways; UITextField 继承自 UIControl,此类中有一个属性contentVerticalAlignment 所以想让UITextField里面的text垂直居中可以这样写: text.contentVerticalAlignment = UIControlContentVerticalAlignmentCenter; 查看函数的方法: 按住command键双击进入函数声明 按住alt键双击进入doc文档 /// 文本框常用方法: 如何用程序删除文本框中选中的文本 [textView delete: nil]; /// 如何限制文本框只能输入数字: 建立NSNumberFormatter的子类,增加这个方法,将formatter链接至文本框。 - (BOOL) isPartialStringValid: (NSString **) partialStringPtr proposedSelectedRange: (NSRangePointer) proposedSelRangePtr originalString: (NSString *) origString originalSelectedRange: (NSRange) origSelRange errorDescription: (NSString **) error {
NSCharacterSet *nonDigits; NSRange newStuff; NSString *newStuffString; nonDigits = [[NSCharacterSet decimalDigitCharacterSet] invertedSet]; newStuff = NSMakeRange(origSelRange.location, proposedSelRangePtr->location - origSelRange.location); newStuffString = [*partialStringPtr substringWithRange: newStuff]; if ([newStuffString rangeOfCharacterFromSet: nonDigits options: NSLiteralSearch].location != NSNotFound) {
*error = @"不是数字"; return (NO); } else {
*error = nil; return (YES); } } /// 从文本框获取十六进制数据的代码 char singleNumberString[3] = {'\0','\0','\0'}; uint32_t singleNumber = 0; uint32_t i = 0; NSMutableData *data = [NSMutableData data]; //从文本框获取到得数据 const char *buf = [[_hexToSendTextField text] UTF8String]; //转换为十六进制 for(i = 0; i < strlen(buf); i+=2) {
if(((i+1) < len && isxdigit(buf) && (isxdigit(buf[i+1]))) {
singleNumberString[0] = buf; singleNumberString[1] = buf[i+1]; sscanf(singleNumberString, "%x", &singleNumber); [data appendBytes:(void*)(&tmp) length:1]; } else {
break; } } //输出 NSLog(@"%@", data); / 点击 UITextView 输入文字,光标都从最初点开始 - (void)textViewDidChangeSelection:(UITextView *)textView {
NSRange range; range.location = 0; range.length = 0; textView.selectedRange = range; } /// 软键盘 在登录页面要实现用户名和密码,密码要是点点格式,引入当前页面光标要停留在用户名选项,软键盘要弹出界面。如下图: 弹出键盘: [username becomeFirstResponder]; 取消键盘: [username resignFirstResponder]; 密码保护: password.secureTextEntry=YES; // 1.UITextField的初始化和设置 textField = [[UITextField alloc] initWithFrame:CGRectMake(120.0f, 80.0f, 150.0f, 30.0f)]; [textField setBorderStyle:UITextBorderStyleRoundedRect]; //外框类型 textField.placeholder = @"password"; //默认显示的字 textField.secureTextEntry = YES; //密码 textField.autocorrectionType = UITextAutocorrectionTypeNo; textField.autocapitalizationType = UITextAutocapitalizationTypeNone; textField.returnKeyType = UIReturnKeyDone; textField.clearButtonMode = UITextFieldViewModeWhileEditing; //编辑时会出现个修改X textField.delegate = self; 2.要实现的Delegate方法,关闭键盘 - (BOOL)textFieldShouldReturn:(UITextField *)textField { [self.textField resignFirstResponder]; return YES; } 3. 可以在UITextField使用下面方法,按return键返回 -(IBAction) textFieldDone:(id) sender {
[textFieldName resignFirstResponder]; } 链接TextField控件的"Did end on exit" 限制输入文本的长度 - (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string {
if (range.location >= MAX_LENGTH) return NO; // return NO to not change text return YES; } if (textField.text.length >= 10 && range.length == 0) return NO; return YES; - (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string { if ([textField.text length] > MAXLENGTH) { textField.text = [textField.text substringToIndex:MAXLENGTH-1]; return NO; } return YES; } // 使用UITextFieldDelegate来隐藏键盘 在iPhone界面上,时常会需要当用户输入完内容后,隐藏键盘。 当然有很多方法,今天只介绍使用UITextFieldDelegate这个协议实现隐藏键盘。 其实很简单, 需要三步: 1. 在你的控制器类中,加入UITextFieldDelegate这个协议 如:@interface AddItemViewController : UIViewController
2. 在使用了UITextFieldDelegate协议的控制器类的实现中,加入- (BOOL)textFieldShouldReturn:方法。 - (BOOL)textFieldShouldReturn:(UITextField *)textField {
[textField resignFirstResponder]; return YES; } //设置焦点: [UITextField becomeFirstResponder]; 3. 将xib文件中的TextField控件的delegate变量指向到之前使用UITextFieldDelegate协议的那个控制器类,将 TextField的delegate IBOutlet变量右键链接到前面的控制器类的实例上。或者使用代码方式,指定相关TextField的delegate变量。 - (void)viewDidLoad {
[super viewDidLoad]; itemNameField.delegate = self; priceField.delegate = self; } from: http://www.cnblogs.com/wengzilin/archive/2012/03/13/2393985.html
你可能感兴趣的文章
写shell的事情
查看>>
负载均衡之Haproxy配置详解(及httpd配置)
查看>>
标准与扩展ACL 、 命名ACL 、 总结和答疑
查看>>
查找恶意的TOR中继节点
查看>>
MAVEN 属性定义与使用
查看>>
shell高级视频答学生while循环问题
查看>>
使用@media实现IE hack的方法
查看>>
《11招玩转网络安全》之第一招:Docker For Docker
查看>>
hive_0.11中文用户手册
查看>>
hiveserver2修改线程数
查看>>
XML教程
查看>>
oracle体系结构
查看>>
Microsoft Exchange Server 2010与Office 365混合部署升级到Exchange Server 2016混合部署汇总...
查看>>
Proxy服务器配置_Squid
查看>>
开启“无线网络”,提示:请启动windows零配置wzc服务
查看>>
【SDN】Openflow协议中对LLDP算法的理解--如何判断非OF区域的存在
查看>>
纯DIV+CSS简单实现Tab选项卡左右切换效果
查看>>
栈(一)
查看>>
ios 自定义delegate(一)
查看>>
创建美国地区的appleId
查看>>