IQKeyboardManager 错误:“UIView”类型的值没有成员“keyboardToolbar”

Posted

技术标签:

【中文标题】IQKeyboardManager 错误:“UIView”类型的值没有成员“keyboardToolbar”【英文标题】:IQKeyboardManager error: Value of type 'UIView' has no member 'keyboardToolbar' 【发布时间】:2017-09-15 15:04:11 【问题描述】:

我通过 Firebase 从 github 导入了 IQKeyboardManager,它带有一些易于修复的 swift 2.0 错误,基本上是重命名了很多东西...

如果您正在使用当前版本的 IQKeyboardManager 来获取最新的 Swift,请帮助,如果您遇到此错误,请告诉我!

所以现在有了新版本的 IQKeyboardManager(3.2 可行),它向我显示了这个我似乎无法弄清楚的错误:

///////////problem here
let toolbar = textField.keyboardToolbar

// error says "Value of type 'UIView' has no 
// member 'keyboardToolbar' "

//  Setting toolbar to keyboard.
if let _textField = textField as? UITextField 

    //Bar style according to keyboard appearance
    switch _textField.keyboardAppearance 

    case UIKeyboardAppearance.dark:

        toolbar.barStyle = UIBarStyle.black
        toolbar.tintColor = UIColor.white
        toolbar.barTintColor = nil;

【问题讨论】:

keyboardToolbar 是通过 IQKeyboardManager 库中定义的 UIView 上的类别扩展返回的 IQToolBar 对象。如果没有正确获取类别扩展,您可能没有正确导入该库。你在用cocoapods吗?可能也想在此处包含您的配置。 检查这个:cocoadocs.org/docsets/IQKeyboardManagerSwift/4.0.2 【参考方案1】:

感谢 cmets,我检查了所有来源,似乎从 Swift 2 升级 -> Swift 3 在语法方面对我使用的所有第三方库都不是那么友好,所以最好不要重新编码所有内容想法是从 Podfile 中卸载“IQKeyboardManagerSwift”并删除其在项目中的所有引用,甚至是框架,然后尝试使用更新版本重新安装它。该错误是基于语法的,它指向一些文件在更改为 Swift 3 时未正确更新....

答案:卸载、删除引用并重新安装。

谢谢大家!

【讨论】:

以上是关于IQKeyboardManager 错误:“UIView”类型的值没有成员“keyboardToolbar”的主要内容,如果未能解决你的问题,请参考以下文章

集成 IQKeyboardManager 时找不到 .h 文件

如何让 iqkeyboardmanager 包含 UISearchBar

IQKeyboardManager 未禁用

iOS 键盘框架IQKeyboardManager使用

完成按钮在 IQkeyboardManager 库中不可见

IQKeyboardManager - 将 UITextView 移动得太远