IQKeyboardManager - 将UITextView向上移动太远

时间:2017-04-02 18:11:04

标签: ios swift uitextview iqkeyboardmanager

我正在使用IQKeyboardManager为我拥有的备注视图控制器(包含大UITextView)简化键盘管理。但是,一旦键盘处于活动状态,屏幕就会不必要地向上移动。我希望屏幕在键盘处于活动状态之前保持原样(见下图),并且只有键盘覆盖用户输入后才能滚动UITextView。

Before keyboard is active

When the keyboard is active (view scrolled up, covering "Notes" and Navigation Bar)

我不希望导航栏或“注释”标签被遮盖,但我找不到IQKeyboardManager中的设置来阻止UITextView被一路推送到顶部。

当键盘处于活动状态时,如何防止视图向上移动?

编辑:我应该注意到我并不反对删除IQKeyboardManager,我只是认为它会处理这个问题。我主要只需要一种方法让UITextView在用户输入键盘下方的内容时自动滚动。

更新:根据键盘是否可见,调整my IQKeyboardManager的contentInset,解决了UITextView的问题。

2 个答案:

答案 0 :(得分:0)

你的导航栏是否半透明?这是IQKeyboardManager中的常见错误。尝试取消选中导航栏中的“半透明”属性。这不是完美的解决方案,但应该有效。

答案 1 :(得分:0)

如果您希望屏幕保持原样,可以使用IQKeyboardManager.sharedManager().disabledDistanceHandlingClasses属性禁用班级的移动行为,例如:

/* Probably in your AppDelegate where you setup the keyboard */

IQKeyboardManager.sharedManager().enable = true
IQKeyboardManager.sharedManager().disabledDistanceHandlingClasses = [YourViewController.self]