我正在开发自定义键盘,添加目标模式'自定义键盘'。
所以我正在开发我的UIInputViewController的子类。
我已经完成了正确的自定义键盘类型。
所以我需要根据目前用户输入的文字在我的自定义键盘上方创建一个建议视图。
该模块与默认系统键盘完全相同。
但是当我尝试使用以下代码访问'inputAccessoryView'时:
let customView = UIView(frame:CGRectMake(0,0,UIScreen.mainScreen().bounds.width,100))
customView.backgroundColor = UIColor.redColor()
self.inputAccessoryView = customView
我收到了一个错误:
无法分配给属性:'iputAccessoryView'是一个get-only属性
我经常搜索,但没有任何关系。
我发现有些帖子引用了'UITextField'
和'accessoryview of UITextField'
not related to 'UIInputViewController'
。
但是在激活自动完成模式后,默认系统键盘显示inputAccessoryView充满了建议关键字,但我的自定义键盘上面没有显示任何内容。
我认为应该在“UIInputViewController”中完成工作,而不是使用“UITextField”,并且我的自定义键盘需要激活才能创建其inputAccessoryview。
我有什么遗漏或误解吗?
答案 0 :(得分:0)
Apple的Custom Views for Data Input文档指出:
“任何直接或间接从
UIResponder
继承的类(通常是 自定义视图)可以指定自己的输入视图和输入附件 观“。
您需要在inputAccessoryView
或UIView
这样的子类中定义UITextField
,这些子类都继承自UIResponder
。通过这样做,您可以定义当特定类型的视图成为第一响应者时键盘上方应显示的内容。
你最终会得到类似的东西:
class MyTextField: UITextField {
override var inputAccessoryView: UIView? {
return myView
}
}
当MyTextField
成为第一响应者时,myView
将显示在键盘上方。