尝试将 IQKeyboardManager 与 Xcode 和 Swift 一起使用时出错

Posted

技术标签:

【中文标题】尝试将 IQKeyboardManager 与 Xcode 和 Swift 一起使用时出错【英文标题】:Getting error when trying to use IQKeyboardManager with Xcode and Swift 【发布时间】:2016-09-03 14:34:09 【问题描述】:

我想在使用UITextFieldUITextView 时使用IQKeyboardManager 来管理键盘。我正在使用 Xcode 和 Swift。我不使用 CocoaPods,我想使用源代码方法。

这些是我正在做的步骤。

    打开项目并将IQKeyboardManagerSwift 文件夹移动到我的Xcode 项目的左侧边栏中。这是它的屏幕截图: IQKeyboardManagerSwift folder in Xcode sidebar

    然后我像这样更改了 AppDelegate.swift 中的代码:

    func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool 
        IQKeyboardManager.sharedManager().enable = true
    
        return true
    
    

但我得到的是Use of unresolved identifier 'IQKeyboardManager' 换成IQKeyboardManager.sharedManager().enable = true

我做错了什么?我完全按照手册进行了操作,并且已经阅读了数百遍,但无法正常使用。

【问题讨论】:

【参考方案1】:

当您拖放“IQKeyboardManagerSwift”文件夹时,请确保选择“CREATE GROUPS”而不是“CREATE FOLDER REFERENCES”。这应该可以解决问题。

我在here找到了这个解决方案

【讨论】:

【参考方案2】:

确保以下几点:-

1.) 您已经导入了库:-

          import IQKeyboardManagerSwift

2.)确保没有安装两个cocoapods,因为如果安装了它们,XCode 会混淆从何处选择此依赖项

参考来自:-https://***.com/a/38918522/6297658

首先检查您正在使用的 swift 和 Xcode 版本,以及该版本是否支持您正在使用的 pod 文件

Swift 2.2 (Xcode 7.3) 使用:-

pod 'IQKeyboardManagerSwift'

或者

pod 'IQKeyboardManagerSwift', '4.0.3'

对于 Swift 2.1.1 (Xcode 7.2) 使用:-

pod 'IQKeyboardManagerSwift', '4.0.0'

对于 Swift 2.0 (Xcode 7.0) 使用:-

pod 'IQKeyboardManagerSwift', '3.3.3.1' 我有类似的问题,原来我安装了两个 Cocoapods 实例,这是一个 Cocoapods 问题而不是 Xcode 问题(在我的情况下是')。

我需要做的就是卸载我的 cocoapod 并重新安装它https://***.com/a/27940867/6297658......这对我有用......

完成重新安装后,转到您的 pod 文件,根据您使用的 swift 和 Xcode 的版本添加 pod,然后运行 ​​pod install

PS:Cocoapods REPO 将近 350MB,所以如果你的下载卡住了,不要只是退出终端并重新开始重新安装,首先完全卸载 Cocoapods 和旧的主 repo,然后重新开始安装......这可能是导致两次以我为例

如果您在 Objective-C 中手动安装库,则必须包含 Header Search PathBridging Header

【讨论】:

您好,感谢您的回答。但我没有使用 CocoaPods,也不想使用它。我想用Source Code Method 安装它。你知道我做错了什么吗? 您的回答仍然没有帮助我。我想使用Source Code Method 嗨,@Dravidian,感谢您的提问。不幸的是我仍然没有解决这个问题。我不想使用 CocoaPods。你能帮帮我吗? 您使用的是 swift 框架还是 Obj-C?您是否在构建设置中更新了其他链接器标志?【参考方案3】:

我知道这个问题是 3 年前提出的。但是今天我遇到了同样的问题。所以现在我正在回答我是如何解决的,希望我的回答对将来的人有所帮助。

    正如arauter 所说,当您拖放“IQKeyboardManagerSwift”文件夹时,请确保选择“CREATE GROUPS”而不是“CREATE FOLDER REFERENCES”。这应该可以解决问题。

    转到您的目标 -> 构建阶段 -> 编译源,然后添加包含在“IQKeyboardManagerSwift”目录中的每个文件。

就是这样。它会工作的!

【讨论】:

【参考方案4】:

最简单的解决方法是使用CocoaPods Method。 CocoaPods 负责处理所有依赖项。它将为您节省数小时的头痛!

至少,花几分钟时间阅读CocoaPods Get Started 页面。

【讨论】:

您的回答对我没有帮助。我想使用Source Code Method

以上是关于尝试将 IQKeyboardManager 与 Xcode 和 Swift 一起使用时出错的主要内容,如果未能解决你的问题,请参考以下文章

iPhone X使用IQKeyboardManager管理UITextfield键盘

IQKeyboardManager 与 DownPicker 冲突

IQKeyboardManager 与 UIDatePicker

IQKeyboardManager 未禁用

IQKeyboardManager - 将 UITextView 移动得太远

集成 IQKeyboardManager 时找不到 .h 文件