如何在文本上方移动UITextView修正建议

Dou*_*ugW 10 iphone cocoa-touch objective-c uitextview

我正在使用UITextView粗略复制键盘上方的SMS文本框.我正在使用UITextView而不是字段,以便它可以使用多行进行扩展.

问题是,在我的UITextView中,修正建议会弹出文本下方,导致它们被键盘部分遮挡.

在SMS应用程序中,建议会在文本上方弹出.展示位置似乎不是UITextView或UITextInputTraits的属性.

知道如何复制这种行为吗?谢谢!

Rob*_*ier 8

问题是键盘是作为单独的UIWindow实现的,而不是作为主UIWindow中的视图实现的,因此使用它进行布局是棘手的.以下是正确方向的一些指示:

  • 通过应用程序的-windows属性查找私有UITextEffectsWindow窗口并找出其框架.这是键盘
  • 通过TextView的子视图查找私有UIAutocorrectInlinePrompt视图.这是自动更正的泡泡.
  • 将该子视图移动到单独的包装器视图(添加到TextView),然后移动该包装器视图,使其位于上述键盘窗口上方.

你会注意到上面提到的两个"私人".这带来了所有相关的警告.我不知道为什么Apple甚至在他们的应用程序不得不解决它时仍然允许问题持续存在.