键盘附件视图隐藏文本
Posted
技术标签:
【中文标题】键盘附件视图隐藏文本【英文标题】:Keyboard accessory view hiding text 【发布时间】:2011-10-09 16:42:18 【问题描述】:我有以下问题:我有一个标准的 UITextView,一旦键盘弹出,我就会调整它的大小。我还有另一个视图,我将其动画化(不是附加到键盘的标准附件视图)。问题是我不希望文本被这个视图隐藏。这就是我到达最后一行时发生的情况(橙色视图 = 我的自定义附件视图):
理想情况下,如果发生这种情况,我希望有一个自动滚动。但如果我在 UITextView 的最后一行,我不知道如何实现这一点。此外,scrollToVisible 在这种情况下不起作用,我不知道我是否可以使用 contentInset。
欢迎提出任何建议!谢谢。
编辑
我想我需要某种机制来允许
-
如果我在最后一行输入内容,则仅将文本视图扩展到附件视图正上方的行
如果我没有编辑 LINE DIRECTLY ABOVE KEYBOARD,请将 textview 扩展到键盘。
这有意义吗?我想我需要的是 contentInset 的反面。
我只是不想将 textView 的大小调整到附件视图的上方,因为它会占用屏幕空间来显示文本。
【问题讨论】:
【参考方案1】:我找到了解决方案——抱歉,我想这很明显,但我花了一整天的时间才弄明白:
textOfPage.contentInset = UIEdgeInsetsMake(0, 0, 100, 0);
这将抵消我的 UITextView 以使最后一行永远不会隐藏。 100 以像素为单位,可以进行相应调整。
【讨论】:
【参考方案2】:我要做的是在textViewShouldBeginEditing
方法中调整textview 的大小以适合键盘和新添加的附件视图,然后在textViewShouldEndEditing
中关闭键盘时将其调整回全屏
【讨论】:
实际上,如何获取文本的最后一行并使用 textViewDidChangeSelection 找到它的宽度,如果它比某个数字更宽,您会自动在文本中附加一个换行符? 至于你的第一个建议,恐怕没有多大帮助,因为如果有更多的文字,我想有额外的空间。想象一下,您想编辑第 25 行,后面还有更多行(例如第 26、27、28 行)。你的建议会使我的 UITextView 更小,以便第 26、27、28 行等。如果我要编辑第 25 行,则不会显示。 至于你的第二个建议,如果用户不想有这个输入,我真的不想附加换行符。我想要的只是以某种方式剪辑可编辑但仍显示其余部分的视图(如上图所示)。 对不起,拉杜,我自己想出来的。我需要使用 textOfPage.contentInset = UIEdgeInsetsMake(0, 0, 100, 0); ...不过,感谢您的帮助!以上是关于键盘附件视图隐藏文本的主要内容,如果未能解决你的问题,请参考以下文章