学习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. c语言单向链表逆转实现方法

    自己理解的思路如下所示: 从第二个节点开始,先记录下一个节点,把第二个节点移到头节点之前,头节点变为移动的这个节点之前记录的节点变为接下来要移动的节点用for循环重复最后把原来头节点变成尾节点(*ne ...

  2. Websocket 临时参考网站

    https://blog.csdn.net/SGuniver_22/article/details/74273839 https://www.zhihu.com/question/20215561 h ...

  3. 关于Win10 环境下Quartus II 15.0器件列表无法下拉的解决方法

    不知大家在Windows 10 64位系统环境下使用Quartus II 15.0在新建工程时遇到过这种问题没,在新建工程的过程是选择器件的列表无法下拉,只能看到一个器件型号,如图1所示. 图1 开始 ...

  4. 2016-2017-2 《Java程序设计》第3周学习总结

    20155202张旭 2016-2017-2 <Java程序设计>第3周学习总结 教材学习内容总结 第四章:认识对象: java两个类型系统:基本类型,类类型. 定义"构造函数& ...

  5. 20155315 2017-05-10 《Java程序设计》课堂代码检查

    一.教材代码检查-p98 代码要求 修改教材P98 Score2.java, 让执行结果数组填充是自己的学号 代码链接 运行结果截图 二.在IDEA中以TDD的方式对String类和Arrays类进行 ...

  6. 20155328 《Java程序设计》 实验二(Java面向对象程序设计) 实验报告

    20155328 <Java程序设计> 实验二(Java面向对象程序设计) 实验报告 单元测试 一.单元测试和TDD 编程时需理清思路,将编程需求等想好,再开始编.此部分可用伪代码实现. ...

  7. Servlet——web.xml的配置

    <servlet>: <servlet-name>: 名称 <servlet-class>: 类名 <init-param>: 初始化参数(只有本ser ...

  8. RHCSA-考前准备

    1.考前准备 RHCSA classroom虚拟机和server虚拟机 将两台虚拟机切换到初始化快照 打开虚拟机电源,当出现提示时选择我已移动该虚拟机 系统密码: classroom: root As ...

  9. 将 Python3 文件打包成 exe 文件

    我们用 Python 写好的代码,如何给别人在没有配置 Python 环境的情况下直接使用呢?尤其是面向 windows 众. 因为 Python 是一门解释性的语言,离开了 Python 解释器,P ...

  10. ABP中module-zero快速集成微信用户认证

     https://personball.com/abp/2019/01/01/introduce-abp-module-zero-external-authenticate