我正在尝试让UIMenuController在长按UITextView时显示复制和粘贴菜单。如果屏幕上只有一个UITextView,它可以工作。但是,如果屏幕上有多个UITextViews,长按活动的UITextView(一个是第一个响应者)触发放大镜显示,当手指被释放时,显示复制和粘贴菜单,但是,菜单被取消自动在不到一秒钟。
以下是视图层次结构:
UIView - > UIImageView - > MyUIView - > UITextView的
|的 __ > MyUIView - >的UITextView
我将userInteractionEnabled和非活动UITextViews的可编辑设置为NO。关于如何制作复制和粘贴菜单的任何想法都留下来了?
我正在使用Xcode 4.6.3并在带有iOS 7.0的iPhone 4S上进行测试
答案 0 :(得分:5)
显然,只要firstResponder发生变化,UIMenuController就会被解雇!
为了跟踪更改的来源,如果是其他,您可以收听UIMenuControllerWillHideMenuNotification并检查谁在解雇菜单。
答案 1 :(得分:1)
我找到了解决方案。我在问题中没有足够的细节,这可能就是没有答案的原因。
关键缺失的部分是我将UITextView子类化,它覆盖了layoutSubviews(参见buggy margin behavior with dynamically resizing UITextView)。解决方案只是删除layoutSubviews函数,我使用krafter的建议来解决UITextView截断问题。