//UITextView 文本显示滚动试图,既可以显示文字,也可以编辑文字 继承自UIScrollView  是一个滚动试图//这个空间带有 UIScrollView中的方法 属性以及 Label中的一些方法和属性UITextView *textView = [[UITextView alloc]initWithFrame:CGRectMake(0, 0, 300, 400)];textView.backgroundColor = [UIColor redColor];textView.font = [UIFont systemFontOfSize:33];textView.text = @"默认";textView.textColor = [UIColor greenColor];//隐藏 横竖滚动条textView.showsHorizontalScrollIndicator = NO;textView.showsVerticalScrollIndicator = NO;
UITextField//用于用户输入文本信息(类似于C scanf)的UI视图- (void)viewDidLoad //一般情况下只被调用一次
{[super viewDidLoad];//代码写在这里self.view.backgroundColor = [UIColor orangeColor];//视图控件的添加写在下面//创建一个UITextField实例,(文本框),如果没有后续人为处理的话,不支持多行显示.UITextField *textField = [[UITextField alloc] initWithFrame:CGRectMake(10, 30, 300,50)];//设置文本框的边框风格,设置为圆角矩形边框风格,默认风格为UITextBorderStyleNonetextField.borderStyle = UITextBorderStyleRoundedRect;/*UITextBorderStyleNone,UITextBorderStyleLine,UITextBorderStyleBezel,UITextBorderStyleRoundedRect //圆角*///设置文本框的文字字体textField.font = [UIFont boldSystemFontOfSize:18];//文本框默认的提示文字,在我们真正输入文字时消失textField.placeholder = @"请输入内容";//YES,文字内容会显示成暗文 ,默认为NO,一般将文本框作为输入密码用途的时候,设置此属性textField.secureTextEntry = YES;//文本框文本内容的竖直方向的对齐方式,设置为竖直方向居中显示textField.contentVerticalAlignment =UIControlContentVerticalAlignmentCenter;//设置清除按钮的显示,默认为UITextFieldViewModeNevertextField.clearButtonMode =UITextFieldViewModeWhileEditing;/*UITextFieldViewModeNever,UITextFieldViewModeWhileEditing,UITextFieldViewModeUnlessEditing,UITextFieldViewModeAlways*///当开始输入的时候清除里面的内容field.text = @"默认内容";field.clearsOnBeginEditing = YES;textField.backgroundColor = [UIColor cyanColor];//设置了borderStyle 背景图片无效果text.background = [UIImage imageNamed:@"textfield"];对键盘相关的设置---在项目开发中比较常用//设置键盘的样式keyboardType属性//纯数字键盘textField.keyboardType = UIKeyboardTypeNumberPad;/*UIKeyboardTypeDefault,            UIKeyboardTypeASCIICapable,       UIKeyboardTypeNumbersAndPunctuation,UIKeyboardTypeURL,                 UIKeyboardTypeNumberPad,//数字键盘UIKeyboardTypePhonePad,      UIKeyboardTypeNamePhonePad,         UIKeyboardTypeEmailAddress,//邮箱UIKeyboardTypeDecimalPad UIKeyboardTypeTwitter UIKeyboardTypeWebSearch UIKeyboardTypeAlphabet = UIKeyboardTypeASCIICapable,*///设置键盘右下角的返回按钮的样式,利用returnKeyType属性,根据不用的使用情景,设置不同的返回按钮样式textField.returnKeyType = UIReturnKeyGo;/*UIReturnKeyDefault,UIReturnKeyGo,UIReturnKeyGoogle,UIReturnKeyJoin,UIReturnKeyNext,UIReturnKeyRoute,UIReturnKeySearch,UIReturnKeySend,UIReturnKeyYahoo,UIReturnKeyDone,UIReturnKeyEmergencyCall,UIReturnKeyContinue NS_ENUM_AVAILABLE_IOS(9_0),*///让textField成为第一响应者,textField会自动将它的键盘调出来.[textField becomeFirstResponder];textField.delegate = self;
}//不常用  改变键盘样式textField.keyboardAppearance = UIKeyboardAppearanceDark;/*UIKeyboardAppearanceDefault,    UIKeyboardAppearanceDarkUIKeyboardAppearanceLightUIKeyboardAppearanceAlert = UIKeyboardAppearanceDark,  // D*/UIView *view = [[UIView alloc]initWithFrame:CGRectMake(0, 0, 40, 40)];左侧头试图 用于调制光标开始位置textField.leftView = view;textField.leftViewMode = UITextFieldViewModeAlways;view.backgroundColor = [UIColor redColor];/*UITextFieldViewModeNever,UITextFieldViewModeWhileEditing,UITextFieldViewModeUnlessEditing,UITextFieldViewModeAlways*/
//    textField.rightView//设置第一响应者 textField会进入编辑状态 键盘自动弹起[textField becomeFirstResponder];//注销第一响应者[textField resignFirstResponder];键盘顶部添加视图UIView *headView = [[UIView alloc]initWithFrame:CGRectMake(0, 0, 320, 40)];headView.backgroundColor = [UIColor redColor];//自定义键盘//textField.inputView = headView;//二级键盘textField.inputAccessoryView = headView;---UITextFieldDelegate---//textField已经开始编辑  开始编辑的时候会调用一次
- (void)textFieldDidBeginEditing:(UITextField *)textField{NSLog(@"已经开始编辑");textField.background = [UIImage imageNamed:@"textfield_hl"];
}//textField已经结束编辑
- (void)textFieldDidEndEditing:(UITextField *)textField{NSLog(@"已经结束编辑");textField.background = [UIImage imageNamed:@"textfield"];
}
- (BOOL)textFieldShouldClear:(UITextField *)textField{//默认YES 可以清空textField里的内容return YES;
}//键盘右下角的reture能否被点击
- (BOOL)textFieldShouldReturn:(UITextField *)textField{//取消第一响应者 收起键盘
//    [textField resignFirstResponder];//收起键盘[self.view endEditing:YES];return YES;
}******************************************************//  ViewController.m
//  总结-UITextField#pragma mark - 系统的textField的基础属性- (void)createTextField1{//UITextField文本输入框视图//继承关系:UITextField -> UIControl -> UIView -> UIResponder ->NSObjectUITextField * textField = [[UITextField alloc] initWithFrame:CGRectMake(20, 40, 280, 40)];/***************常用属性*******************///1.设定边框textField.borderStyle = UITextBorderStyleNone;//类型UITextBorderStyle 枚举/*UITextBorderStyleNone,//无边框UITextBorderStyleLine,//线性边框UITextBorderStyleBezel,//尖角矩形UITextBorderStyleRoundedRect//圆角矩形*///2.设置占位符 当没有文字,显示占位符textField.placeholder = @"请输入用户名....";//3.设置背景图片  注:设置背景颜色最好把边框样式(borderStyle)设置成无边框(UITextBorderStyleNone)textField.background = [UIImage imageNamed:@"textfield"];//4.设置清除健的模式textField.clearButtonMode = UITextFieldViewModeUnlessEditing;//类型UITextFieldViewMode 枚举/*UITextFieldViewModeNever,//一致不显示UITextFieldViewModeWhileEditing,//当编辑的时候显示UITextFieldViewModeUnlessEditing,//不编辑的时候显示UITextFieldViewModeAlways//在编辑文字的时候总出现*///5.设置密文输入 默认NOtextField.secureTextEntry = YES;//6.设置每次编辑文字,原有文字消失textField.clearsOnBeginEditing = YES;//7.设置当前文本框是第一响应[textField becomeFirstResponder];//注:一个视图控制器上可能有多个可编辑空间,哪个正在编辑,哪个是当前第一响应,通过这个方法可以直接后台开启第一响应。//8.注销第一响应[textField resignFirstResponder];//9.键盘的类型textField.keyboardType = UIKeyboardTypeDefault;//类型UIKeyboardType 枚举/*UIKeyboardTypeDefault,//默认UIKeyboardTypeNumberPad,//数字键盘UIKeyboardTypeEmailAddress,//Email键盘UIKeyboardTypePhonePad,//电话键盘UIKeyboardTypeNamePhonePad,//即可输入文字,又可输入电话键UIKeyboardTypeASCIICapable,//能够顺利输入ASCII键盘UIKeyboardTypeNumbersAndPunctuation,//能够输入数字和标点UIKeyboardTypeURL,//适合输入网址的键盘UIKeyboardTypeDecimalPad//数字键盘 带小数点UIKeyboardTypeTwitter//推特键盘 微博键盘UIKeyboardTypeWebSearch//网页搜索键盘UIKeyboardTypeAlphabet = UIKeyboardTypeASCIICapable,//其实默认键盘可以输入上述所有键盘能输入的内容*///10.修改KeyBoard的return键的样式 应先将键盘样式设为defaulttextField.returnKeyType = UIReturnKeyGoogle;//类型UIReturnKeyType 枚举/*UIReturnKeyDefault,UIReturnKeyGo,UIReturnKeyGoogle,UIReturnKeyJoin,UIReturnKeyNext,UIReturnKeyRoute,UIReturnKeySearch,UIReturnKeySend,UIReturnKeyYahoo,UIReturnKeyDone,UIReturnKeyEmergencyCall,UIReturnKeyContinue,*/UIImageView * leftView = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"btn_home_h"]];//注:x、y设与不设无所谓leftView.frame = CGRectMake(0, 0, 40, 50);//9.设置左视图 注:类型是UIView 所以UIView的子类都可以作为它的左视图textField.leftView = leftView;//10.设置左视图显示模式  同上:类型UITextFieldViewModetextField.leftViewMode = UITextFieldViewModeAlways;UIImageView * rightView = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"btn_home_h"]];//x、y设与不设无所谓rightView.frame = CGRectMake(0, 0, 40, 50);//10.设置右视图  注:同一个试图不能即作为textField左视图又作为右视图textField.rightView = rightView;//11.设置右视图显示模式  同上:类型UITextFieldViewModetextField.rightViewMode = UITextFieldViewModeAlways;//注:x,y,width都不用管,只需要设置高度UIView *accessoryView = [[UIView alloc]initWithFrame:CGRectMake(0, 0, 100, 40)];accessoryView.backgroundColor = [UIColor redColor];//12.设置弹出二级键盘textField.inputAccessoryView = accessoryView;/***************和UILabel相似的属性*****************///1.输入框内容 这样设置是默认内容 会覆盖占位内容textField.text = @"输入框内容";//2.设置文字字体textField.font = [UIFont systemFontOfSize:20];//3.设置字体颜色textField.textColor = [UIColor redColor];//4.设置字体对齐方式textField.textAlignment = NSTextAlignmentCenter;//5.设置自适应宽度,空间不足,可以缩小字体,但是空间过大,不会放大字体textField.adjustsFontSizeToFitWidth = YES;//6.设置最小字体,在自适应字体时生效textField.minimumFontSize = 5;/********************不常用属性********************///1.设置是否纠错textField.autocorrectionType = UITextAutocorrectionTypeNo;//类型UITextAutocorrectionType 枚举/*UITextAutocorrectionTypeDefault,//按照默认设置UITextAutocorrectionTypeNo,//不提示UITextAutocorrectionTypeYes,//提示*///2.设置是否自动大写textField.autocapitalizationType = UITextAutocapitalizationTypeWords;//类型UITextAutocapitalizationType 枚举/*UITextAutocapitalizationTypeNone,//不大写UITextAutocapitalizationTypeWords,//单词首字母大写UITextAutocapitalizationTypeSentences,//句子首字母大写UITextAutocapitalizationTypeAllCharacters,//全大写*/textField.borderStyle = UITextBorderStyleRoundedRect;//3.自定义键盘样式UILabel *inputLabel = [[UILabel alloc]initWithFrame:CGRectMake(0, 0, 320, 280)];inputLabel.backgroundColor = [UIColor redColor];inputLabel.numberOfLines = 0;inputLabel.text = @"自定义键盘,你可以在上面放一些按钮,做成键盘的样式";textField.inputView = inputLabel;//4.设置不能点击状态下的背景图片textField.disabledBackground = [UIImage imageNamed:@"textfield_hl"];[self.view addSubview:textField];
}#pragma mark - 重写方法的textField- (void)createTextField2{//自己定义的UITextField   重写了UITextField的方法MyTextField * textField = [[MyTextField alloc] initWithFrame:CGRectMake(20, 100, 280, 40)];textField.borderStyle = UITextBorderStyleBezel;textField.placeholder = @"请输入....";textField.clearButtonMode = UITextFieldViewModeAlways;UIImageView * leftView = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"btn_home_h"]];leftView.frame = CGRectMake(0, 0, 40, 50);textField.leftView = leftView;textField.leftViewMode = UITextFieldViewModeAlways;UIImageView * rightView = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"btn_home_h"]];rightView.frame = CGRectMake(0, 0, 40, 50);textField.rightView = rightView;textField.rightViewMode = UITextFieldViewModeAlways;[self.view addSubview:textField];
}#pragma mark - 显示代理的textField
- (void)createTextField3{UITextField * textField = [[UITextField alloc] initWithFrame:CGRectMake(20, 160, 280, 40)];textField.background = [UIImage imageNamed:@"textfield"];textField.delegate = self;[self.view addSubview:textField];
}#pragma mark - 协议方法 UITextFieldDelegate//textField是否可以被编辑  在开始编辑的时候会被调用
- (BOOL)textFieldShouldBeginEditing:(UITextField *)textField{NSLog(@"是否可以被编辑");//默认返回的YESif ([textField.text isEqualToString:@"Over"]) {return NO;}return YES;
}//textField已经开始编辑  开始编辑的时候会调用一次
- (void)textFieldDidBeginEditing:(UITextField *)textField{NSLog(@"已经开始编辑");textField.background = [UIImage imageNamed:@"textfield_hl"];
}//textField已经结束编辑
- (void)textFieldDidEndEditing:(UITextField *)textField{NSLog(@"已经结束编辑");textField.background = [UIImage imageNamed:@"textfield"];
}//textField里的内容可以被清空
- (BOOL)textFieldShouldClear:(UITextField *)textField{//默认YES 可以清空textField里的内容return YES;
}//键盘右下角的reture能否被点击
- (BOOL)textFieldShouldReturn:(UITextField *)textField{//取消第一响应者 收起键盘[textField resignFirstResponder];//收起键盘[self.view endEditing:YES];return YES;
}//当textField中的文字个数试图改变,委托这个方法,返回YES 允许改变, 返回NO不许改变
- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string{//只要在输入 这个方法就会被实时调用NSLog(@"你正在输入....");//第二个参数:range的长度通常无用,range.loc表示光标的位置//第三个参数:string是新写入的字符串//拿到当前textField里的内容NSMutableString * str = [[NSMutableString alloc] initWithString:textField.text];//把新输入的字符串拼接到原来的后面[str insertString:string atIndex:range.location];//当textField中的文字长度大于等于6的时候 不让继续编辑return str.length <= 6;
}
@end

iOS基石——UITextField相关推荐

  1. iOS - 在UITextField外部触摸时关闭键盘

    我想知道当用户触摸UITextField之外时如何使键盘消失. #1楼 检查一下,这将是最简单的方法, -(void)touchesBegan:(NSSet *)touches withEvent:( ...

  2. iOS限定UITextField的输入格式

    iOS限定文本框的输入格式 // // ViewController.m // 限定文本框只能接收数字 // // Created by mac on 16/4/13. // Copyright © ...

  3. iOS中UITextField的字数限制

    刚开始的时候, 采用的是shouldChangeCharactersInRange http://stackoverflow.com/questions/433337/set-the-maximum- ...

  4. iOS开发--UITextField限制字数(中文,数字),过滤空格和emoji,更新九宫格判断

    前言 这是在我项目开发中遇到的问题,主要是给创建的作品保存名字,这样我们就会涉及到名称字数和特殊字符的限制,目前涉及到用户输入的大部分解决方案就是UITextField和UITextView,两者的原 ...

  5. iOS中UITextField 使用全面解析

    //初始化textfield并设置位置及大小 UITextField *text = [[UITextField alloc]initWithFrame:CGRectMake(20, 20, 130, ...

  6. iOS开发-UITextField手机号和邮箱验证

    不管是网页是手机,用户注册登录的时候绝大数时候都需要手机号码和邮箱地址,而且有些App会限制只能使用手机号注册,iOS方面邮箱正则比较简单,不过手机号码验证找了一下网上的,发现三大运营商的号码段有所变 ...

  7. iOS - 修改 UITextField 的 clearButtton 样式

    1. 问题描述 当输入框 UITextField 的背景比较深的时候,它自带的 clearButton 就会变得几乎不可见,但是 UIKit 框架中提供的 clearButtonMode 属性只能用于 ...

  8. iOS 之 UITextField

    UITextField 之 失去焦点 收起键盘 UITextField 之 手势收起键盘 转载于:https://www.cnblogs.com/SimonGao/p/5106681.html

  9. IOS的UITextField,UIButton,UIWebView它描述的一些属性和IOS提示图像资源

    有时UI要开发的资源与实际frame不符.这一次,我们要绘制图片 UIImage* image = [[UIImage imageNamed:@"text_field_bg.png" ...

最新文章

  1. 【图论】简单 概念 及 公式 入门 ( 完全图 | 二部图 | 连通图 | 欧拉回路 | 哈密顿圈 | 平面图 | 欧拉定理 )
  2. 综合-某假期欢乐赛 (Apri, 2018)
  3. CSS 小结笔记之清除浮动
  4. 京东购物在微信等场景下的算法应用实践
  5. mongodb python 大于_Python中使用MongoDB详解
  6. 【Python爬虫】存储格式化数据
  7. .NET 靠开源再“出圈”!
  8. 保密工作中非密计算机工具检查,【保密知识】别在保密工作面前耍“小聪明”哦~...
  9. Java网络编程实现
  10. php smarty 配置,php Smarty详细配置
  11. C语言100ms周期运行时间不够,DEH-系统调研报告.docx
  12. 码栈搭建自动化应用(可视化模式)
  13. web前端人事面试常问问题
  14. Flutter6,移动设备开发网易云音乐app开发说明
  15. 跑马灯编程Android,Android TextView实现跑马灯效果的方法
  16. 0206.BFPRT在一大堆数中求其前k大或前k小的问题,简称TOP-K问题(左神算法基础班源码)
  17. Exynos4412-itop4412 uboot移植
  18. 【Vue3】vue3获取对象长度(非数组长度)
  19. 记录首次单独完成的js混淆之旅
  20. windows7系统能安MATLAB几,matlab7.0安装win7系统详细使用方法

热门文章

  1. MySQL——数据库 ——简单程序代码大全
  2. 关于van-card中thumb引入本地图片而无法正常显示的解决方法
  3. 【Golang之路】——slice总结
  4. Win32_17集音频和视频播放功能于一身的简易播放器
  5. 5G NR带宽 频点
  6. python swapcase用法_python中swapcase是什么意思
  7. CES 2018前瞻:家居/音箱/AR/汽车都有什么新玩法 | 关注
  8. 【功能测试】软件系统测试报告
  9. web应用漏洞扫描工具实践——wmap
  10. 硬盘 IDE 切换到 AHCI