1

当 UITextView 长按时,我试图让 UIMenuController 显示复制和粘贴菜单。如果屏幕上只有一个 UITextView,它就可以工作。但是,如果屏幕上有多个 UITextView,长按活动的 UITextView(一个是 firstResponder)会触发放大镜显示,当手指松开时,会显示复制粘贴菜单,但菜单会自动关闭不到一秒。

以下是视图层次结构:
UIView -> UIImageView -> MyUIView -> UITextView
                                   | __ > MyUIView -> UITextView

我将非活动 UITextViews 的 userInteractionEnabled 和可编辑设置为 NO。关于如何使复制和粘贴菜单保持不变的任何想法?

我正在使用 Xcode 4.6.3 并在带有 iOS 7.0 的 iPhone 4S 上对其进行测试

4

2 回答 2

5

显然,每当 firstResponder 发生变化时,UIMenuController 都会被解除!

为了跟踪更改的来源,如果其他,您可以收听 UIMenuControllerWillHideMenuNotification 并检查谁在关闭菜单。

于 2013-12-04T23:22:50.257 回答
1

我找到了解决方案。我在问题中没有足够的细节,这可能是没有答案的原因。

缺少的关键部分是我继承了 UITextView 并且它覆盖了 layoutSubviews (请参阅动态调整 UITextView 大小的错误边距行为)。解决方案只是删除 layoutSubviews 功能,我使用 krafter 的建议来解决 UITextView 中断问题。

于 2013-11-17T07:19:30.813 回答