1

我在我的项目中使用 IQKeyboardManager,它除了一个问题外,效果很好。我有一个 UITextView ,我的用户在其中输入评论,当显示键盘时,文本视图应该向上移动,问题是如果用户键入多行文本,文本视图会随着每一行新的代码向下扩展,然后2行后进入键盘下方。如果我关闭键盘,然后再次调用它,它将向上移动文本视图,因为它应该显示整个(扩展视图),但如果我继续输入,新行再次落在键盘后面。

我尝试使用滚动,它可以工作,但不是我想要的用户体验,我查看了很多管理键盘的答案,但没有一个解决这个问题的 IQKeyboardManager。

除了 IQKeyboardManager 的实现之外,我真的没有任何代码,但这工作正常。

关于在使用 IQKeyboardManager 时如何在文本视图中的每一行上移动视图的任何想法?

4

1 回答 1

3

我在 github 中进行了挖掘,发现这并不是一个真正的问题,但他们希望开发人员知道 uitextview 何时会增长。因此,他们制定了在适当时使用的调用。IQKeyboardManager.shared.reloadLayoutIfNeeded()

我的解决方案特定于我的文本字段的宽度以及在创建新行之前需要的字符数。不完美,但这确实可以在我的应用程序中无缝运行,因此希望其他人可以使用它。

func textViewDidChange(_ textView: UITextView) {

    let count = textView.text.count

    if count >= 15 || count >= 30 || count >= 45 || count >= 60 || count >= 75 {
        IQKeyboardManager.shared.reloadLayoutIfNeeded()
    }
}
于 2019-05-24T04:37:48.283 回答