我正在使用IQKeyboardManager
为我拥有的备注视图控制器(包含大UITextView
)简化键盘管理。但是,一旦键盘处于活动状态,屏幕就会不必要地向上移动。我希望屏幕在键盘处于活动状态之前保持原样(见下图),并且只有键盘覆盖用户输入后才能滚动UITextView。
When the keyboard is active (view scrolled up, covering "Notes" and Navigation Bar)
我不希望导航栏或“注释”标签被遮盖,但我找不到IQKeyboardManager
中的设置来阻止UITextView
被一路推送到顶部。
当键盘处于活动状态时,如何防止视图向上移动?
编辑:我应该注意到我并不反对删除IQKeyboardManager
,我只是认为它会处理这个问题。我主要只需要一种方法让UITextView
在用户输入键盘下方的内容时自动滚动。
更新:根据键盘是否可见,调整my IQKeyboardManager
的contentInset,解决了UITextView
的问题。
答案 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]