当键盘出现时,UIPopoverController 在 iOS 7 上奇怪地移动

Posted

技术标签:

【中文标题】当键盘出现时,UIPopoverController 在 iOS 7 上奇怪地移动【英文标题】:UIPopoverController moves strangely on iOS 7 when keyboard appears 【发布时间】:2013-10-02 22:59:08 【问题描述】:

我有一个带有文本字段的 UIPopoverController。在 ios 6 上,当用户点击文本字段并且弹出框恰好挡住了屏幕上的键盘滑动时,弹出框会很好地移开。

在 iOS 7 上,它会飞到屏幕边缘。太可笑了。

这只是 iOS 7 中的一个错误吗?有没有办法在 iOS 7 中控制以前不存在的这种行为?

谢谢。

【问题讨论】:

你在使用 UISplitViewController 吗? 我有同样的错误,但还没有找到解决办法 我也面临 iOS6 的类似问题。所以它不是 iOS 版本特定的错误。它可能是默认功能,但很奇怪。 【参考方案1】:

尝试将permittedArrowDirectionsUIPopoverArrowDirectionAny改成UIPopoverArrowDirectionLeft | UIPopoverArrowDirectionRight in -

(void)presentPopoverFromRect:(CGRect)rect inView:(UIView *)view allowedArrowDirections:(UIPopoverArrowDirection)arrowDirections animated:(BOOL)animated;

【讨论】:

这似乎确实缓解了这个问题......虽然它感觉更像是一种解决方法而不是解决方案。不过谢谢! 另一种解决方案 - 您可以在键盘显示之前更改弹出框大小。看到这个要点gist.github.com/pingwinator/7235232 我遇到了一些问题,UIPopoverController 从正确的矩形呈现自己,然后将自己动画到屏幕上的(看似)随机位置。这解决了它。谢谢!【参考方案2】:

似乎弹出框的箭头方向有问题。 这个论坛帖子是相关的,似乎有更多信息 https://devforums.apple.com/message/873738#873738

https://devforums.apple.com/message/885612#885612

【讨论】:

以上是关于当键盘出现时,UIPopoverController 在 iOS 7 上奇怪地移动的主要内容,如果未能解决你的问题,请参考以下文章

为啥当键盘出现时 UICollectionView 偏移量会发生变化

当键盘出现滚动视图时文本字段消失

当使用 Swift 出现键盘时如何向上移动 UIViewController 的内容

仅当键盘快速出现时如何使scrollView滚动

Flutter:当键盘出现时背景被挤压到左边

当用户在 UIWebView 中点击时,默认键盘如何出现?