免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 2759 | 回复: 1
打印 上一主题 下一主题

UITextField 文本字段控件-IOS开发 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2012-03-05 21:34 |只看该作者 |倒序浏览
UITextField 文本字段控件-IOS开发










进入本文之前建议你认真读一读我的另一篇博文:《UIControl IOS控件编程—IOS开发》 http://www.1000phone.net/thread-6985-1-1.html  这样会起到事半功倍效果。

再就是用到UITextField,肯定离不开键盘啦,所以还有一片博文推荐:《UIKeyboard键盘相关知识点》

为什么要看另一篇关于UIControl的文章呢?因为UITextField继承自UIControl类,很多UIControl的属性、方法、通知等完全适用于UITextField,而那些属于UIControl的东西我又不会在此赘述。(主要是减轻文章的长度,以最少的文字最通俗易懂讲明白一个知识点是我追求的目标。)

创建

  1. 01.UITextField* myTextField = [[UITextField alloc]initWithFrame:CGRectMake(50, 100, 200, 50)];  
  2. 复制代码
复制代码
纯代码创建View请参看我的另一片博文:《有关View的几个基础知识点》 http://www.1000phone.net/thread-6986-1-1.html
设置委托
  1. 01.myTextField.delegate = self;//委托类需要遵守UITextFieldDelegate协议  
  2. 复制代码
复制代码
设置属性UIControl属性对UITextField完全可以用,下面的都是UITextFiels扩展的属性:
  1. 01.myTextField.textAlignment = UITextAlignmentLeft;//默认就是左对齐,这个是UITextField扩展属性  

  2. 02.myTextField.borderStyle = UITextBorderStyleBezel;//默认是没有边框,如果使用了自定义的背景图片边框会被忽略掉  

  3. 03.myTextField.placeholder = @"请在此输入账号";//为空白文本字段绘制一个灰色字符串作为占位符  

  4. 04.myTextField.clearsOnBeginEditing = YES;//设置为YES当用点触文本字段时,字段内容会被清除  

  5. 05.myTextField.adjustsFontSizeToFitWidth = YES;//设置为YES时文本会自动缩小以适应文本窗口大小。默认是保持原来大小,而让长文本滚动  

  6. 06.//myTextField.background = [UIImage imageNamed:@"registBtn"];//可以接受UIImage对象,此项设置则边框失效。  

  7. 07.myTextField.clearButtonMode = UITextFieldViewModeUnlessEditing;//右边显示的'X'清楚按钮  

  8. 08.//myTextField.LeftView =  

  9. 09.//myTextField.leftViewMode =   

  10. 10.//myTextField.RightView =  

  11. 11.//myTextField.rightViewMode =   
  12. 复制代码
复制代码
这些属性令你可以将UIView的派生类附着于为本字段的左方或右方。人们通常会将UIButton对象,比如放大镜或者书签按钮附着与文本字段上。每个附着视图都会有一个相应的模式,设置clearButtonmode属性的那些值,同样可以设置这个模式。显示
  1. 01.[self.view addSubview:myTextField];  
  2. 复制代码
复制代码
重写绘制行为除了UITextField对象的风格选项,你还可以定制化UITextField对象,为他添加许多不同的重写方法,来改变文本字段的显示行为。这些方法都会返回一个CGRect结构,制定了文本字段每个部件的边界范围。如果你创见了一个自定义的UITextField类,你可以重写这些方法,这样就可以改变一个或多个边界。一定不要直接调用 fan广发;它们都是被iPhone运行库调用的回调函数下面举个例子:
  1. 01.- (CGRect)clearButtonForBounds:(CGRect)bounds{  

  2. 02.    return CGRectMake(bounds.origin.x +bounds.size.width-50,   

  3. 03.                      bounds.origin.y+bounds.size.height-20, 16, 16);  

  4. 04.}  
  5. 复制代码
复制代码
下列方法在创建一个UITextField的子类时可以重写:borderRectForBounds指定矩形边界textRectForBounds 指定显示文本的边界placeholderRectForBounds指定站位文本的边界editingRectForBounds指定编辑中文本的边界clearButtonRectForBounds指定显示清除按钮的边界leftViewRectForBounds指定显示左附着视图的边界rightViewRectForBounds指定显示右附着视图的边界委托方法

  1. 01.- (BOOL)textFieldShouldBeginEditing:(UITextField *)textField{  

  2. 02.    //返回一个BOOL值,指定是否循序文本字段开始编辑  

  3. 03.    return YES;  

  4. 04.}  
  5. 复制代码
复制代码
  1. 01.- (void)textFieldDidBeginEditing:(UITextField *)textField{  

  2. 02.    //开始编辑时触发,文本字段将成为first responder  

  3. 03.}  
  4. 复制代码
复制代码
  1. 01.- (BOOL)textFieldShouldEndEditing:(UITextField *)textField{  

  2. 02.    //返回BOOL值,指定是否允许文本字段结束编辑,当编辑结束,文本字段会让出first responder  

  3. 03.    //要想在用户结束编辑时阻止文本字段消失,可以返回NO  

  4. 04.    //这对一些文本字段必须始终保持活跃状态的程序很有用,比如即时消息  

  5. 05.    return NO;  

  6. 06.}  
  7. 复制代码
复制代码

  1. 01.- (BOOL)textField:(UITextField*)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string{  

  2. 02.    //当用户使用自动更正功能,把输入的文字修改为推荐的文字时,就会调用这个方法。  

  3. 03.    //这对于想要加入撤销选项的应用程序特别有用  

  4. 04.    //可以跟踪字段内所做的最后一次修改,也可以对所有编辑做日志记录,用作审计用途。     

  5. 05.    //要防止文字被改变可以返回NO  

  6. 06.    //这个方法的参数中有一个NSRange对象,指明了被改变文字的位置,建议修改的文本也在其中  

  7. 07.    return YES;  

  8. 08.}  
  9. 复制代码
复制代码
  1. 01.- (BOOL)textFieldShouldClear:(UITextField *)textField{  

  2. 02.    //返回一个BOOL值指明是否允许根据用户请求清除内容  

  3. 03.    //可以设置在特定条件下才允许清除内容  

  4. 04.    return YES;  

  5. 05.}  
  6. 复制代码
复制代码
  1. 01.-(BOOL)textFieldShouldReturn:(UITextField *)textField{  

  2. 02.    //返回一个BOOL值,指明是否允许在按下回车键时结束编辑  

  3. 03.    //如果允许要调用resignFirstResponder 方法,这回导致结束编辑,而键盘会被收起  

  4. 04.    [textField resignFirstResponder];//查一下resign这个单词的意思就明白这个方法了  

  5. 05.    return YES;  

  6. 06.}  
  7. 复制代码
复制代码

论坛徽章:
0
2 [报告]
发表于 2012-03-05 21:34 |只看该作者
谢谢分享
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP