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

时间:2019-05-23 18:35:54

标签: swift uitextview iqkeyboardmanager

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

我尝试使用滚动功能,该功能可以工作,但不能达到我想要的用户体验,并且我查看了许多管理键盘的答案,但没有一个可以解决IQKeyboardManager的问题。

除了IQKeyboardManager的实现之外,我实际上没有任何代码,但是可以正常工作。

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

1 个答案:

答案 0 :(得分:0)

我在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()
    }
}