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

本文共 5531 字,大约阅读时间需要 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
你可能感兴趣的文章
阿里云《云原生》公开课笔记 第一章 云原生启蒙
查看>>
阿里云《云原生》公开课笔记 第二章 容器基本概念
查看>>
阿里云《云原生》公开课笔记 第三章 kubernetes核心概念
查看>>
阿里云《云原生》公开课笔记 第四章 理解Pod和容器设计模式
查看>>
阿里云《云原生》公开课笔记 第五章 应用编排与管理
查看>>
阿里云《云原生》公开课笔记 第六章 应用编排与管理:Deployment
查看>>
阿里云《云原生》公开课笔记 第七章 应用编排与管理:Job和DaemonSet
查看>>
阿里云《云原生》公开课笔记 第八章 应用配置管理
查看>>
阿里云《云原生》公开课笔记 第九章 应用存储和持久化数据卷:核心知识
查看>>
linux系统 阿里云源
查看>>
国内外helm源记录
查看>>
牛客网题目1:最大数
查看>>
散落人间知识点记录one
查看>>
Leetcode C++ 随手刷 547.朋友圈
查看>>
手抄笔记:深入理解linux内核-1
查看>>
内存堆与栈
查看>>
Leetcode C++《每日一题》20200621 124.二叉树的最大路径和
查看>>
Leetcode C++《每日一题》20200622 面试题 16.18. 模式匹配
查看>>
Leetcode C++《每日一题》20200625 139. 单词拆分
查看>>
Leetcode C++《每日一题》20200626 338. 比特位计数
查看>>