iphone - UITextView修正建议如何移动到文字上方

标签 iphone objective-c cocoa-touch uitextview

我正在使用 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/

相关文章:

ios - UIWebView 没有释放内存

ios - SpriteKit : One node with two physics body

iphone - UILabel 的 sizeThatFits 是否返回它的高度?

ios - iOS-Twitter连接问题:“操作无法完成。 ( cocoa 错误3840。)”

ios - 动画时无法同时满足约束

iphone - 我如何在 self.view 中调用这个方法?

ios - 为什么当我从我转至的 View Controller 返回时,我的 UITableView 的格式完全出错?

iOS 将来自 URL 的音频分成帧

ios - 贴纸包在模拟器上使 iMessage 崩溃,但在 iPhone 上却没有

iPhone:将 NSLog 重定向到文件后,如何将其恢复到控制台?