...绕了一大圈,又绕回原生来了,今天,学习一下swift3.0语法下的自定义键盘.效果图如下:
其实,很简单,只需要把UITextView(或者UITextField)的inputView属性设置为自定义的视图即可.
这里,我举一个栗子,添加一个自定义的emoji键盘.
思路:a.先来一个UIViewController,用来承载一个ToolBar(只是为了放几个按钮,切换系统键盘和自定义键盘)
b.在该UIViewController上面放一个UITextView即可.更改inputView属性.
c.新建一个UIViewController作为自定义键盘的界面承载.其上放一个UICollectionView布局自定义键盘界面
1:完成a.b两步,比如把UITextView.inputView = UIViewController().view 效果会如下:
2.OK,接下来我找了个emoji.plist文件用来存放emoji表情数据,写了一个model存放表情数据使用,然后在collectionView上显示即可.
其中,重点是如何显示emoji表情,大致如下:
1 2 3 4 5 6 7 8 9 | code = dict [ "code" ] as ! String ? //emoji.plist中的code //1.从字符串中取出十六进制的数 //创建一个扫描器,扫描器可以从字符串中提取数据 let sanner = Scanner . init ( string : code !) //2.将十六进制转为字符串 var result : UInt32 = 0 sanner . scanHexInt32 ( & result ) //3.将十六进制转换为emoji字符串 emojiStr = "\( Character . init ( UnicodeScalar . init ( result )!) )" |
其实就是使用Scanner扫描转换emoji表情为系统可识别的字符串即可,其实,emoji本质就是一些String.
3.使用MVC在collectionView上显示出表情之后,可以通过闭包回调把选择的表情回调至承载UITextView的控制器中即可.
基本思路就是这么简单. demo在 https://github.com/pheromone/swift3.0-emojiKeyboard
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· 单线程的Redis速度为什么快?
· 展开说说关于C#中ORM框架的用法!
· Pantheons:用 TypeScript 打造主流大模型对话的一站式集成库
· SQL Server 2025 AI相关能力初探