IQKeyboardManager 不会在每一行新文本中增加 UITextView

IQKeyboardManager not bumping up UITextView with each new line of text

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

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

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

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

我深入研究 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()
    }
}