学习iOS界面设计也有段时间了,每次写到一些基础控件(如:UILable 、 UITextField)的时候就深觉应该总结一个函数来实现这些基础控件的属性设置,所以下面就是我对UITextField的学习:

一、定义一个输入控件

 // 输入控件
@property (nonatomic,strong) UITextField *textField;

二、在viewDidLoad中实例化

 - (void)viewDidLoad {
[super viewDidLoad];
// 实例化输入框
_textField = [[UITextField alloc]initWithFrame:CGRectMake(, , , )];
// 设置textField的属性
[self propertyOfTextField:_textField];
// 添加到父视图
[self.view addSubview:_textField];
}

三、UITextField的常用属性设置

 #pragma mark - UITextField属性设置
- (void)propertyOfTextField:(UITextField *)textField {
// 设置边框样式
textField.borderStyle = UITextBorderStyleRoundedRect;
// 设置占位符
textField.placeholder = @"占位符";
// 设置光标的颜色
textField.tintColor = [UIColor redColor];
// 设置输入框背景颜色
textField.backgroundColor = [UIColor lightGrayColor];
// 设置text字体的颜色
textField.textColor = [UIColor orangeColor];
// 清除模式
textField.clearButtonMode = UITextFieldViewModeWhileEditing;
// 是否安全输入
textField.secureTextEntry = NO;
// 设置字体大小
textField.font = [UIFont systemFontOfSize:];
// 文本对齐方式
textField.textAlignment = NSTextAlignmentLeft;
// 是否纠错(即:联想)
textField.autocorrectionType = UITextAutocorrectionTypeNo;
// 首字母是否大写
textField.autocapitalizationType = UITextAutocapitalizationTypeNone;
// 再次编辑时是够清空
textField.clearsOnBeginEditing = YES;
// 设置键盘样式
textField.keyboardAppearance = UIKeyboardAppearanceDark;
// 设置return按钮的样式
textField.returnKeyType = UIReturnKeySearch;
// 设置代理
textField.delegate = self;
}

四、UITextFieldDelegate 方法

 #pragma mark - <UITextFieldDelegate> method
// 1. 是否允许开始编辑
- (BOOL)textFieldShouldBeginEditing:(UITextField *)textField {
return YES;
} // 2. 已经开始编辑时触发
- (void)textFieldDidBeginEditing:(UITextField *)textField { } // 3. 是否允许结束编辑
- (BOOL)textFieldShouldEndEditing:(UITextField *)textField {
return YES;
} // 4. 已经结束编辑是触发
- (void)textFieldDidEndEditing:(UITextField *)textField { } // 5. 是否允许改变文本输入框字符的长度 可以得到用户输入的字符
- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string { // 可在限制用户输入字符的长度以及敏感字符的输入等
return YES;
} // 6. 是否允许清除
- (BOOL)textFieldShouldClear:(UITextField *)textField {
return YES;
} // 7. 是否响应return键
- (BOOL)textFieldShouldReturn:(UITextField *)textField { // 用户点击键盘上的return键会触发该方法,所以可在此处完成点击return的一些操作
return YES;
}

五、收起键盘的方法:

  // 收键盘1 -- 文本失去第一响应
[textField resignFirstResponder];
// 收键盘2 -- 界面停止编辑
[self.view endEditing:YES];

六、拓展:除了上述一些常用的属性外,还有其他属性也需要了解

  • minimumFontSize :自动缩小显示的最小字体
  • adjustsFontSizeToFitWidth:是否自动调整字体大小
  • contentVerticalAlignment:垂直对齐方式
  • inputAccessoryView:输入附属视图
  • inputView:输入视图(键盘视图)

有些时候要自定义键盘的话,就可以给inputAccessoryView 和inputView两个属性赋值,如果是自定义UITextField,则需要重写这两个属性的getter方法。

以上是我对UITextField的一些总结,如有写得不准确或不完善的地方,还请指正补充,谢谢!!!

iOS界面设计之基础控件的学习 --- UITextField的更多相关文章

  1. 【Android开发学习笔记】【第四课】基础控件的学习

    通过一个简单的例子来学习下面几种控件: 1.TextView:简单的文本显示控件 2.EditText:可以编辑的文本框 3.Button:按钮 4.Menu:这里指的是系统的Menu 5.Toast ...

  2. winform基础控件-例子学习

    1.如图实现整数计算器 ComboBox控件: Items属性:添加集合中的项. this.comoper.Items.AddRange(new object[] { "+", & ...

  3. [iOS基础控件 - 5.5] 代理设计模式 (基于”APP列表"练习)

    A.概述      在"[iOS基础控件 - 4.4] APP列表 进一步封装,初见MVC模式”上进一步改进,给“下载”按钮加上效果.功能      1.按钮点击后,显示为“已下载”,并且不 ...

  4. [iOS基础控件 - 7.0] UIWebView

    A.基本使用 1.概念 iOS内置的浏览器控件 Safari浏览器就是通过UIWebView实现的   2.用途:制作简易浏览器 (1)基本请求 创建请求 加载请求 (2)代理监听webView加载, ...

  5. React Native环境搭建以及几个基础控件的使用

    之前写了几篇博客,但是没有从最基础的开始写,现在想了想感觉不太合适,所以现在把基础的一些东西给补上,也算是我从零开始学习RN的经验吧! 一.环境搭建 首先声明一下,本人现在用的编辑器是SublimeT ...

  6. iOS开发UI篇—UITableview控件使用小结

    iOS开发UI篇—UITableview控件使用小结 一.UITableview的使用步骤 UITableview的使用就只有简单的三个步骤: 1.告诉一共有多少组数据 方法:- (NSInteger ...

  7. WinForm界面开发之布局控件"WeifenLuo.WinFormsUI.Docking"的使用

    WinForm界面开发之布局控件"WeifenLuo.WinFormsUI.Docking"的使用 转自:http://www.cnblogs.com/wuhuacong/arch ...

  8. 【IOS 开发】基本 UI 控件详解 (UISegmentedControl | UIImageView | UIProgressView | UISlider | UIAlertView )

    转载请注明出处 : http://blog.csdn.net/shulianghan/article/details/50163725 一. 分段控件 (UISegmentedControl) 控件展 ...

  9. UWP&WP8.1 基础控件—TextBlock和TextBox

    TextBlock:文本展示控件,有着强大的功能 TextBox:文本输入控件. 这两个控件是最为常用的基础控件. TextBlock 基础用法: 打开一个UWP项目,在XAML设计页面你可以从工具箱 ...

随机推荐

  1. linux-2.6.22.6内核启动分析之配置

    配置过程最终结果是生成.config文件,我们想要对配置的目的有很清楚的了解,必须先对.config文件进行分析.通过cd命令切换到linux-2.6.22.6内核目录,输入vi .config 可以 ...

  2. 树莓派ubuntu系统下修改config.txt文件 树莓派config.txt文件修改记录

    原文:https://www.raspberrypi.org/documentation/configuration/config-txt.md译文:http://my.oschina.net/fun ...

  3. STM32(6)——USART串口的使用

    1. 串口的基本概念 在STM32的参考手册中,串口被描述成通用同步异步收发器(USART),它提供了一种灵活的方法与使用工业标准NRZ异步串行数据格式的外部设备之间进行全双工数据交换.USART利用 ...

  4. 初识spark

    一. spark 概述 1.是什么: ​ Apache Spark 是专为大规模数据处理而设计的快速通用的计算引擎.2012年,它是由加州伯克利大学AMP实 验室开源的类 Hadoop MapRedu ...

  5. scala 求数组排序后每两个元素的差值

    求数组排序后每两个元素的差值 例如数组 1,5,8,10,2 求得结果为 1,3,3,2 一般什么样的场景会有这种需求呢? 比如 计算一堆数据在一定时间内的计算时延, 或者得到这段时间内数据的平均计算 ...

  6. 鼠标移动在屏幕上显示温度Tip提示功能-CToolTipCtrl类的使用

    初学VC++,太多知识不懂,需要不断的查找资料,想通过记录让自己有所积累,主要是怕以后会很快忘记.最近在做一个在屏幕上显示鼠标移动位置的温度值,我利用先缓存一帧图像的温度值,然后,通过鼠标移动消息相应 ...

  7. 2017-2018-1 20155320加分项目——pwd的实现

    2017-2018-1 20155320加分项目--pwd的实现 1 学习pwd命令 2 研究pwd实现需要的系统调用(man -k; grep),写出伪代码 3 实现mypwd 4 测试mypwd ...

  8. [2016北京集训测试赛3]masodik-[凸包]

    Description Soluton 666这道题竟然用凸包... 维护r和c的下凸壳.哪个斜率大走哪个. 证明:我们先不考虑其他的,只考虑两条路,如下图: 设图的长度为x,宽度为y.如果我们要走上 ...

  9. [POJ2104]Kth Number-[整体二分]

    Description 传送门 Solution 将所有询问放在一起,二分答案的同时把区间[l,r]内的数按大小分类. Code #include<iostream> #include&l ...

  10. python3.0 day02 列表、元组 、字典、字符串操作

    1.列表.元组操作 列表是我们最以后最常用的数据类型之一,通过列表可以对数据实现最方便的存储.修改等操作,类似于其他语言中的数组. 定义列表 names = ['Lioa',"Tenglan ...