【iOS-Develop用户交互-04】UITextField

一、UITextField概述

  1.UITextField(文本输入框):是控制?本输入和显示的控件。

  2.iOS系统借助虚拟键盘实现输入,当点击输?框系统会自动调出键盘方便你进一步操作,在你不需要输入的时候可以使用收回键盘的方法,收回弹出的键盘。

  3.UITextField和UILabel相比,UILabel主要用于文字显示,不能编辑,UITextField允许?户编辑文字(输入)。

二、UITextField创建

  1.创建UITextField与创建UILabel的步骤很相似:?

    (1)开辟空间并初始化(如果本类有初始化?方法,使?自己的,否则使用父类的)。?

    (2)设置文本显示、输入相关的属性?。

    (3)添加到父视图上,用以显示。

    (4)释放对象(MRC)。

  2.代码示例:

1     UITextField *userNameTextField = [[UITextField alloc]initWithFrame:CGRectMake(100, 100, 190, 30)];
2     userNameTextField.borderStyle =UITextBorderStyleRoundedRect;
3     userNameTextField.placeholder = @"?手机号/邮箱";
4     [containerView addSubview:userNameTextField];
5     [userNameTextField release];

三、属性

  1.输入框中一开始就有的文字

textField.text = @“输入框中一开始就有的文字”;

  2.?本内容的颜色

textField.textColor = [UIColor redColor];

  3.?本的对齐方式(水平方向)

textField.textAlignment = NSTextAlignmentLeft;

  4.设置输入框内容的字体样式和大小

textField.font = [UIFont fontWithName:@“Helvetica- Bold” size:20];//黑体加粗,20号字。

  5.占位字符串(没有任何输?入时,给出的提示字符串)

textField.placeholder = @“请输入用户名”;

  6.是否允许输入

1 textField.enabled =NO;//不允许输入,不弹出键盘?
2 textField.enabled =YES;//默认是YES。允许输入

  7是否开始输入的时候清空输入框内容

1 textField.clearsOnBeginEditing = YES;//清空?
2 textField.clearsOnBeginEditing = NO;//不清空

  8.是否文字以圆点格式显?

1 textField.secureTextEntry = YES;//密码模式?
2 textField.secureTextEntry = NO;//普通模式?

  9.弹出键盘的类型(枚举值)

textField.keyboardType = UIKeyboardTypeNumberPad; //数字键盘

  10.键盘右下角return按钮类型(枚举值)

textField.returnKeyType = UIReturnKeyNext;

  11.自定义输入视图(默认是键盘)

textField.inputView = myInputView;

  12.输入视图上方的辅助视图(默认nil)

textField.inputAccessoryView = myAccessoryView;

  13.边框样式(枚举值),只有设置了才会显示边框样式

textField.borderStyle = UITextBorderStyleRoundedRect;

  14.清除按钮模式(枚举值)

textField.clearButtonMode = UITextFieldViewModeAlways; //总是显?清除按钮

  15.输入框左视图

textField.leftView = leftView;

  16.左视图的显示模式

textField.leftViewMode = UITextFieldViewModeAlways; //总是显示左视图

  17. 输入框右视图

textField.rightView = rightView;

  18.右视图的显?模式

textField.rightViewMode = UITextFieldViewModeAlways;

  19.设置文本是否自动适应窗口大小

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

  20.设置自动缩小显示的最小字体大小

textField.minimumFontSize = 20;

  21.设置输入框的背景颜色

 textField.backgroundColor = [UIColor whiteColor];

  22.设置背景, 如果使用了自定义的背景图片,边框会被忽略掉

textField.background = [UIImage imageNamed:@"dd.png"];

  23.是否纠错

 textField.autocorrectionType = UITextAutocorrectionTypeNo;

  24.键盘外观(枚举值)

textView.keyboardAppearance=UIKeyboardAppearanceAler;// 深灰 石墨色

  25.首字母是否大写

text.autocapitalizationType = UITextAutocapitalizationTypeNone;

  26.内容的垂直对齐方式  UITextField继承自UIControl,此类中有一个属性contentVerticalAlignment

 text.contentVerticalAlignment = UIControlContentVerticalAlignmentCenter;

三、代理方法(全是textfield开头)

  1.返回一个BOOL值,指定是否允许文本字段开始编辑

1 - (BOOL)textFieldShouldBeginEditing:(UITextField *)textField{
2     return YES;
3 }  

  2.开始编辑时触发该方法,文本字段将成为first responder

1 - (void)textFieldDidBeginEditing:(UITextField *)textField{
2 }  

  3.返回BOOL值,指定是否允许文本字段结束编辑,当结束编辑时,文本字段会让出first responder,要想在用户结束编辑时阻止文本字段消失,可以返回NO,这对一些文本字段必须始终保持活跃状态的程序很有用,比如即时消息

1 - (BOOL)textFieldShouldEndEditing:(UITextField *)textField{
2     return NO;
3 }  

  4.结束编辑触发该方法

1  - (void)textFieldDidEndEditing:(UITextField *)textField{
2 }

  5.当用户使用自动纠正功能,把输入的文字修改为推荐的文字时,就会调用这个方法,这对于想要加入撤销选项的应用程序特别有用。

1 - (BOOL)textField:(UITextField*)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string{
2
3 //可以跟踪字段内所做的最后一次修改,也可以对所有编辑做日志记录,用作审计用途。
4 //要防止文字被改变可以返回NO
5 //这个方法的参数中有一个NSRange对象,指明了被改变文字的位置,建议修改的文本也在其中
6      return YES;
7 }  

  6.返回一个BOOL值指定是否允许根据用户请求清除内容,可以设置在特定条件下才允许清除内容

1 - (BOOL)textFieldShouldClear:(UITextField *)textField{
2      return YES;
3 } 

  7.返回一个BOOL值,指定是否允许在按下回车键时结束编辑 ,这个方法在点击右下角return键时会触发,如果调用resignFirstResponder 方法,这会导致结束编辑,而键盘会被收起[textField resignFirstResponder];

1 -(BOOL)textFieldShouldReturn:(UITextField *)textField{
2      return YES;
3 }  
时间: 2024-08-24 06:39:25

【iOS-Develop用户交互-04】UITextField的相关文章

iOS回顾笔记(04) -- UIScrollView的基本使用详解

html,body,div,span,applet,object,iframe,h1,h2,h3,h4,h5,h6,p,blockquote,pre,a,abbr,acronym,address,big,cite,code,del,dfn,em,img,ins,kbd,q,s,samp,small,strike,strong,sub,sup,tt,var,b,u,i,center,dl,dt,dd,ol,ul,li,fieldset,form,label,legend,table,caption

IOS研究之多个UITextField的键盘处理

在IOS开发中使用UITextField时常需要考虑的问题就是键盘的处理.有时候,弹出的键盘会将UITextField区域覆盖,影响用户输入.这个时候就要将视图上移.这个时候我们需要考虑两点: 1,修改视图坐标的时机; 2,上移的偏移是多大. 3,UITableView设置Section间距 不明白的可以看看. 我根据自己实际操作的实现方法如下: 1,获取正在编辑的UITextField的指针 定义一个全局的UITextField的指针 UITextField *tempTextFiled; 在

python变量及用户交互,用户名格式化输出

变量 name = wwjun Name2 = "wwjun" print ("name,Name2") 用户交互 Username = input ("username:") Password = input ("password:") Print(username,password) 用户名格式化输出 name = input ("name:") age = input ("age:"

python-FIrst1--变量赋值-注释-用户交互-条件判断与缩进

变量与赋值 name='mike'          #这里一定要注意,如果右边的值不是数字,就一定要加引号,否则系统会认为右边也是一个变量,而右边我们希望是一个值,所以这时候我们就需要给右边加上单引号或者双引号,以表示右边是一个字符串. age=39 把右边的值赋予左边,就是赋值,左边的name和age就叫做变量. 注释 可以用#符号来表示,也可以用一对三个连续的单引号和双引号来表示多行注释,当要注释的内容不多的时候用#比较方便,当要注释很多行内容尤其是超过三行的时候最好用,一对 三个单引号或

python-变量、用户交互、循环

如何在pycharm上创建一个工程 打开pycharm,在菜单栏点击file选项,选着New project,跳出一个New project的框,在左边一栏选择pure python,会在右边出现两行,第一行是选择工程创建的地址及工程的名字,第二行是选着使用的python的版本,选着好之后,点击右下角的creat.至此,工程就创建好了.然后在窗口右边的创建的工程名字点击鼠标右键,选择New,再选着Directory,一个目录就创建好了.将鼠标定位到刚创建的目录名出点击鼠标右键选择New,再选择p

控件不接收用户交互的情况以及事件响应顺序

开发中经常会遇到控件不接收用户交互了,可以从以下几个方面检查: 1. enable = NO 就不可以被点击 ->也会让按钮显示禁用状态 2. 设置了控件的 userInterActionEnabel = NO 3. hidden属性为YES 4. 控件的alpha < = 0.01 5. 如果一个父控件与用户的交互设置为NO ,那么它子控件将获取不到交互事件 6.如果子视图超出父视图范围,超出范围的部分也不能接收用户交互 7. 触发事件的过程 1). 交互事件,是先由父控件获取到,然后父控件

Kinect 开发 &mdash;&mdash; 用户交互设计的若干思考

Metro 风格 windows 8 Kinect Hub 手势原型设计 悬停选择     翻页控制 关节点重叠的处理方法 将箭靶设置在画面的边缘,这样玩家持弓的角度与屏幕保持一个大约45度的锐角,这样Kinect可以很精确的检测到拉弓射箭的动作 手势天生具有一定随意性,而且具有一定的文化背景差异性   手与设备的非接触性 虚拟触摸的界面 Kinect 使交互"柔软化"   确认操作保持简单一致 悬停选择 -- 将手停在想要选择的项目方块或按钮上,等待进度圆圈的填充,这个过程会在T时间

简明Python教程笔记(二)----用户交互raw_input()

raw_input() python内建函数 将所有输入看做字符串,返回字符串类型 input()对待纯数字输入时具有自己的特性,它返回所输入的数字的类型( int, float ) input() 本质上还是使用 raw_input() 来实现的,只是调用完 raw_input() 之后再调用 eval() 函数 例子: #!/usr/bin/env pythonthis_year = 2014name = raw_input('please input your name:')age1 =

IOS Webview JS交互之事件拦截获取

最近项目中用到了webvVew,webView加载的网页中有两个按钮,要在app里面响应这两个按钮的点击事件,并接受JS传过来的参数. ios7 的时候,出来了一个新的类库叫JavaScriptCore.framework - (void)setupJsContent { //获取当前JS环境 _content = [_webView valueForKeyPath:@"documentView.webView.mainFrame.javaScriptContext"]; // 打印异