文档章节

iOS,键盘附件

hell03W
 hell03W
发布于 2016/11/05 16:10
字数 322
阅读 40
收藏 0

项目需求是这样的:

要搞一个键盘的附件, 查了些资料, 效果如图.

首先, UIResponder 中有两个相关的属性, 其实只用到了inputAccessoryView属性, 在UIResponder中, 这个属性是只读的, 我们需要在自定义的控制器或者view上, 重写这个属性, @property (nullable, nonatomic, readwrite, strong) UIView *inputAccessoryView;; 然后自定义一个view, 赋值给 inputAccessoryView 属性即可. 这时候, 在定义readwrite的inputAccessoryView属性的UIResponder子类的, 子视图上面, 弹出键盘时候, 键盘会有一个附件. 你可以完全自定义这个附件.

// Called and presented when object becomes first responder.  Goes up the responder chain.
@property (nullable, nonatomic, readonly, strong) __kindof UIView *inputView NS_AVAILABLE_IOS(3_2);
@property (nullable, nonatomic, readonly, strong) __kindof UIView *inputAccessoryView 

这是我的测试代码:

- (void)show {
    [super show];
    [[IQKeyboardManager sharedManager] setEnable:NO];
    
    ESPasswdInputView *passwdInputView = [[ESPasswdInputView alloc] initWithFrame:CGRectZero];
    self.inputAccessoryView = passwdInputView;
    passwdInputView.delegate = self;
    _passwdInputView = passwdInputView;
    
    UITextField *textField = [[UITextField alloc] init];
    [textField becomeFirstResponder];
    [self addSubview:textField];
    
    [passwdInputView show];
}
- (void)dismiss {
    
    [[IQKeyboardManager sharedManager] setEnable:YES];
    [super dismiss];
    [self.passwdInputView dismiss];
    self.passwdInputView = nil;
}
1.首先如果项目中使用了`IQKeyboardManager`, 则最好关闭掉;
2.自定义的inputAccessoryView不能添加到其它图层之上, 否则崩;
3.测试代码中,使用添加到视图上的一个傀儡textField, 目的是换出键盘, 然后让键盘的附件上的textField成为第一响应者.

© 著作权归作者所有

共有 人打赏支持
hell03W
粉丝 10
博文 145
码字总数 109892
作品 0
朝阳
程序员
iOS自定义的emoji表情键盘

iOS自定义的表情键盘 一、关于emoji表情 随着iOS系统版本的升级,对原生emoji表情的支持也越来越丰富。emoji表情是unicode码中为表情符号设计的一组编码,当然,还有独立于unicode的另一套编...

珲少
2015/11/11
0
3
IOS12开发者预览版第二版使用评测

     手头有一部iPhone 6s Plus,因为之前看同学和朋友们升到IOS 11后手机变得非常卡顿所以没有升级。最近偶然看到IOS 12针对旧机型做了性能优化,号称提升70%相机打开速度、50%键盘显示...

张旭乾
06/23
0
0
iOS 9应用开发教程之iOS 9新特性

iOS 9应用开发教程之iOS 9新特性 iOS 9开发概述 iOS 9是目前苹果公司用于苹果手机和苹果平板电脑的最新的操作系统。该操作系统于2015年6月8号(美国时间)被发布。本章将主要讲解iOS 9的新特...

大学霸
2015/08/05
0
0
iO6 Programming pushing the limits 阅读笔记

目录 第一部分 iOS6新内容 第二部分 从每天工具中获取更多(介绍日常使用控件和框架的潜力) 第三部分 完成任务的正确工具(介绍不是那么常用的控件和框架) 第四部分 发挥到极限(深入理解i...

云飞扬v5
2015/11/09
0
0
fixed定位元素被安卓、ios键盘顶起的解决办法

问题背景: 当我们在写H5页面时经常会有fixed固定位置的元素存在,例如下图左中的"作业帮一课APP下载框",当我们input输入的时候键盘会弹起并将fixed定位的下载框顶起,如下图右,ios和安卓部分机...

JamesView
07/07
0
0

没有更多内容

加载失败,请刷新页面

加载更多

20180920 rzsz传输文件、用户和用户组相关配置文件与管理

利用rz、sz实现Linux与Windows互传文件 [root@centos01 ~]# yum install -y lrzsz # 安装工具sz test.txt # 弹出对话框,传递到选择的路径下rz # 回车后,会从对话框中选择对应的文件传递...

野雪球
今天
0
0
OSChina 周四乱弹 —— 毒蛇当辣条

Osc乱弹歌单(2018)请戳(这里) 【今日歌曲】 @ 达尔文:分享花澤香菜/前野智昭/小野大輔/井上喜久子的单曲《ミッション! 健?康?第?イチ》 《ミッション! 健?康?第?イチ》- 花澤香菜/前野智...

小小编辑
今天
6
2
java -jar运行内存设置

java -Xms64m #JVM启动时的初始堆大小 -Xmx128m #最大堆大小 -Xmn64m #年轻代的大小,其余的空间是老年代 -XX:MaxMetaspaceSize=128m # -XX:CompressedClassSpaceSize=6...

李玉长
今天
1
0
Spring | 手把手教你SSM最优雅的整合方式

HEY 本节主要内容为:基于Spring从0到1搭建一个web工程,适合初学者,Java初级开发者。欢迎与我交流。 MODULE 新建一个Maven工程。 不论你是什么工具,选这个就可以了,然后next,直至finis...

冯文议
今天
1
0
RxJS的另外四种实现方式(四)——性能最高的库(续)

接上一篇RxJS的另外四种实现方式(三)——性能最高的库 上一篇文章我展示了这个最高性能库的实现方法。下面我介绍一下这个性能提升的秘密。 首先,为了弄清楚Most库究竟为何如此快,我必须借...

一个灰
今天
1
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部