一行代码为UITextField添加收键盘功能
iOS开发中收键盘是十分常用的功能,只需一行代码即可为ViewController添加工具条收键盘功能
更重要的是使用catogory,无代码污染。
代码
// UITextField+keyboard.h
// TextFieldKeyBord
//
// Created by luo.h on 15/10/8.
// Copyright 2015年 l.h. All rights reserved.
// #import <UIKit/UIKit.h> @interface UITextField (keyboard) +(void)registerTextFieldInView:(UIView *)aView; @end
//
// UITextField+keyboard.m
// TextFieldKeyBord
//
// Created by luo.h on 15/10/8.
// Copyright 2015年 l.h. All rights reserved.
// #import "UITextField+keyboard.h" @implementation UITextField (keyboard) -(void)addToolbarWitDoneTitle:(NSString*)title
{
UIBarButtonItem *flexibleSpaceLeft = [[UIBarButtonItem alloc]
initWithBarButtonSystemItem:UIBarButtonSystemItemFlexibleSpace
target:nil
action:nil]; UIBarButtonItem *doneButton = [[UIBarButtonItem alloc] initWithTitle:title
style:UIBarButtonItemStyleDone
target:self
action:@selector(dismissKeyBord)];
[doneButton setTintColor:[UIColor redColor]]; UIToolbar *toolbar = [[UIToolbar alloc] initWithFrame:CGRectMake(0, 0, self.window.frame.size.width, 44.0)];
[toolbar setItems:@[flexibleSpaceLeft, doneButton]];
[self setInputAccessoryView:toolbar];
}
//查找所有UITextField并添加按钮
+(void)registerTextFieldInView:(UIView *)aView;
{
for (id obj in aView.subviews) {
NSLog(@"obj class: %@",[obj class]);
if ([obj isKindOfClass:[UITextField class]]) {
UITextField* theTextField = (UITextField*)obj;
[theTextField addToolbarWitDoneTitle:@"完成"]; }
}
} -(void)dismissKeyBord
{
[self resignFirstResponder];
} @end
使用:
- (void)viewDidLoad {
[super viewDidLoad];
//注册self.view里所有UITextField
[UITextField registerTextFieldInView:self.view];
}
Demo: https://files.cnblogs.com/files/sixindev/TextFieldKeyBord.zip

一行代码为UITextField添加收键盘功能的更多相关文章
- Runtime学习与使用(一):为UITextField添加类目实现被键盘遮住后视图上移,点击空白回收键盘
OC中类目无法直接添加属性,可以通过runtime实现在类目中添加属性. 在学习的过程中,试着为UITextField添加了一个类目,实现了当TextField被键盘遮住时视图上移的功能,顺便也添加了 ...
- 一行代码调用实现带字段选取+条件判断+排序+分页功能的增强ORM框架
问题:3行代码 PDF.NET是一个开源的数据开发框架,它的特点是简单.轻量.快速,易上手,而且是一个注释完善的国产开发框架,受到不少朋友的欢迎,也在我们公司的项目中多次使用.但是,PDF.NET比起 ...
- 利用nginx向现有网站添加登录验证功能(不添加修改现有网站代码)
在不改变现有网站代码的前提下加入验证功能: 1.假设现有网站后端nodejs,端口3000,nginx配置如下 server { listen 80; server_name localhost; l ...
- 仅仅需手动添加一行代码就可以让Laravel4执行在SAE (v. 1.0.0)
Github:https://github.com/chariothy/laravel4-sae (已更新至v1.1.0) laravel4-sae (v. 1.0.0) 仅仅需手动添加一行代码就可以 ...
- HOOK大法实现不修改程序代码给程序添加功能
[文章标题]: HOOK大法实现不修改程序代码给程序添加功能[文章作者]: 0x18c0[软件名称]: Scylla[使用工具]: OD.Stub_PE.ResHacker[版权声明]: 本文原创于0 ...
- iOS开发一行代码系列:一行搞定输入框
近期总结了下开发过程中经常使用的功能,发现有时候我在做反复性的劳动.于是决定把经常使用的功能抽出来,方便下次使用. 我的想法是:用最少的代码来解决这个问题.于是写了一些经常使用的工具类,名字就叫一行代 ...
- Android之ListView性能优化——一行代码绑定数据——万能适配器
如下图,加入现在有一个这样的需求图,你会怎么做?作为一个初学者,之前我都是直接用SimpleAdapter结合一个Item的布局来实现的,感觉这样实现起来很方便(基本上一行代码就可以实现),而且也没有 ...
- 一行代码解决ie6,7,8,9,10兼容性问题
"浏览器模式"."文档模式"选项的区别如下: 1."浏览器模式"用于切换IE针对该网页的默认文档模式.对不同版本浏览器的条件备注解析.发送给 ...
- 一行代码,让你的应用中UIScrollView的滑动与侧滑返回并存
侧滑返回是iOS系统的一个很贴心的功能,特别是在大屏手机上,单手操作的时候去按左上角的返回键特别不方便.当我在使用一个APP的时候,如果控制器不能侧滑返回,我会觉得这个APP十分不友好...这款产品在 ...
随机推荐
- 【SpringBoot】No 'Access-Control-Allow-Origin' header is present on the requested resource.
关键字:跨域,Access-Control-Allow-Origin,转码,解码 在做一个前后端分离项目,本来前端项目都可以正常访问后端接口,跨域是这么设置的,接口可以正常访问 @Configurat ...
- openmesh - impl - Remove Duplicated Vertices
openmesh - impl - Remove Duplicated Vertices 关于openmesh元素删除实现的介绍参见:openmesh - src - trimesh delete a ...
- Git 远程分支常用操作
# 查看远程仓库推拉地址,分支信息,分支跟踪情况等 git remote show origin # 拉取远程仓库的变更内容到本地 git fetch origin # 拉取并合并仓库的变更内容到本地 ...
- DB2给表批量赋权
使用DB2的for循环语句给表批量赋权,同理,稍加修改可作为其他批量操作. 值得注意的是: grant语句无法直接执行,需要使用execute immediate才能执行. 授权操作表的所有权限:gr ...
- alias 中使用 awk
alias hehistory10='history |awk "{print \$2}"|sort|uniq -c|sort -rn|head -10' alias lv='ls ...
- 从一堆 JAR 文件中,找出一个 Java class 文件的所在配置
Find a class somewhere inside dozens of JAR files? find path/to/libs -name '*.jar' -exec grep -Hls C ...
- js监听网页页面滑动滚动事件,实现导航栏自动显示或隐藏
/** * 页面滑动滚动事件 * @param e *///0为隐藏,1为显示var s = 1;function scrollFunc(e) { // e存在就用e不存在就用windon.event ...
- 微信小程序自定义导航栏组件
1.首先,要在json文件中设置为自定义的形式 "navigationStyle": "custom" 2.计算相关值 导航栏分为状态栏和标题栏,只要能算出每台 ...
- 论文翻译:2020_RESIDUAL ACOUSTIC ECHO SUPPRESSION BASED ON EFFICIENT MULTI-TASK CONVOLUTIONAL NEURAL NETWORK
论文翻译:https://arxiv.53yu.com/abs/2009.13931 基于高效多任务卷积神经网络的残余回声抑制 摘要 在语音通信系统中,回声会降低用户体验,需要对其进行彻底抑制.提出了 ...
- SSRF服务器端请求伪造漏洞基础
0x00 思考 1.什么是SSRF漏洞?2.SSRF漏洞的利用方式3.SSRF漏洞绕过4.SSRF漏洞加固 0x01 什么是SSRF漏洞 定义:SSRF漏洞,中文全称为服务端请求伪造漏洞,是一种由攻击 ...