ios) 如何在自定义键盘上方创建建议视图

Posted

技术标签:

【中文标题】ios) 如何在自定义键盘上方创建建议视图【英文标题】:ios) How to create a suggesion view above the custom keyboard 【发布时间】:2016-08-06 16:54:43 【问题描述】:

我正在开发自定义键盘,添加一个目标模式的“自定义键盘”。

所以我正在开发 UIInputViewController 的子类。

我已正确设置自定义键盘类型。

所以我需要根据用户目前输入的文本在我的自定义键盘上方创建一个建议视图。

它是与默认系统键盘完全相同的模块。

但是当我尝试使用以下代码访问“inputAccessoryView”时:

let customView = UIView(frame:CGRectMake(0,0,UIScreen.mainScreen().bounds.width,100))
customView.backgroundColor = UIColor.redColor()
self.inputAccessoryView = customView

我有一个错误:

无法分配给属性:'iputAccessoryView' 是一个只能获取的属性

我搜索了很多,但没有什么对我有用。

我发现一些帖子提到了'UITextField''accessoryview of UITextField' not related to 'UIInputViewController'

但是在激活自动完成模式后,默认系统键盘向我显示了充满建议关键字的 inputAccessoryView,但我的自定义键盘在其上方没有显示任何内容。

我认为这项工作应该在“UIInputViewController”而不是“UITextField”中完成,并且我的自定义键盘需要激活才能创建其 inputAccessoryview。

我有什么遗漏或误解吗?

【问题讨论】:

【参考方案1】:

Apple 的 Custom Views for Data Input 文档指出:

"任何直接或间接继承自UIResponder 的类(通常 自定义视图)可以指定自己的输入视图和输入附件 查看。”

您确实需要在UIViewUITextField 之类的子类中定义inputAccessoryView,它们都继承自UIResponder。通过这样做,您可以定义当特定类型的视图成为第一响应者时应在键盘上方显示的内容。

你最终会得到类似的东西:

class MyTextField: UITextField 
    override var inputAccessoryView: UIView? 
        return myView
    

MyTextField 成为第一响应者时,myView 将显示在键盘上方。

【讨论】:

以上是关于ios) 如何在自定义键盘上方创建建议视图的主要内容,如果未能解决你的问题,请参考以下文章

如何防止键盘出现在自定义警报视图上

如何根据文本输入类型在自定义键盘中标记返回键

在自定义视图上显示弹出菜单时不要关闭键盘

如何在自定义键盘中关闭键盘?

Android:在自定义键盘上添加 imageButton

iOS 8 自定义键盘方向更改