当键盘出现时,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】:尝试将permittedArrowDirections
从UIPopoverArrowDirectionAny
改成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 偏移量会发生变化