我正在使用 UITextView 大致复制键盘上方的 SMS 文本框。我正在使用 UITextView 而不是字段,以便它可以扩展为多行。
问题是,在我的 UITextView 中,更正建议会在文本下方 弹出,导致它们被键盘部分遮挡。
在 SMS 应用程序中,建议会在文本上方弹出。该位置似乎不是 UITextView 或 UITextInputTraits 的属性。
知道如何复制这种行为吗?谢谢!
最佳答案
问题是键盘是作为单独的 UIWindow 实现的,而不是作为主 UIWindow 中的 View 实现的,因此使用它进行布局很棘手。以下是一些正确方向的指示:
- 通过应用程序的
-windows
属性寻找私有(private)UITextEffectsWindow
窗口并确定其框架。这是键盘 - 搜索 TextView 的 subview 以找到私有(private)
UIAutocorrectInlinePrompt
View 。这是自动更正气泡。 - 将该 subview 移动到单独的包装 View (添加到 TextView),然后移动该包装 View ,使其位于上述键盘窗口上方。
您会注意到上面两次提到“私有(private)”。这带有所有相关的警告。我不知道为什么 Apple 允许这个问题持续存在,即使他们的应用程序也不得不解决这个问题。
关于iphone - UITextView修正建议如何移动到文字上方,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1977249/