gpt4 book ai didi

swift - IQKeyboardManager 不会用每个新文本行来提升 UITextView

转载 作者:行者123 更新时间:2023-11-30 10:43:39 25 4
gpt4 key购买 nike

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

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

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

关于如何在使用 IQKeyboardManager 时将 TextView 中的每个新行向上移动 View 有什么想法吗?

最佳答案

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

关于swift - IQKeyboardManager 不会用每个新文本行来提升 UITextView,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56281136/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com