MyModalViewController
은 버튼 누르기에서 모달로 표시됩니다. MyRootViewController
입니다. MyModalViewController
에는 UISearchBar
이 포함되어 있으며 텍스트 입력란에 길게 누를 때마다 [잘라 내기] | [붙여 넣기 | 전체 선택] 텍스트 옵션을 표시하고 싶습니다.UISearchBar가 잘못된 UIMenuItem을 보여줍니다. 다른 곳에서 UIMenuController를 사용하기 때문에
MyRootViewController
그러므로, 긴 버튼을 누르세요 (UIMenuController
을 통해) 사용자 정의 UIMenuItems
를 제공 - (BOOL)canBecomeFirstResponder
을 무시하고 - (BOOL)canPerformAction:(SEL)action withSender:(id)sender
및 -(void)duplicate:(id)sender
및 -(void)delete:(id)sender
을 구현합니다. 복사 | | 붙여 넣기
내가 가진 문제는 MyRootViewController
는 사용자 오래 내부 프레스 및 따라서 대신 일반 [잘라 내기 때문에, 관련없는 메뉴 항목을 표시 할 때 MyModalViewController
내부의 UISearchBar
에 대해 표시 할 UIMenuItems
요청되고 있다는 것입니다 | 텍스트 필드의 [모두 선택] 옵션을 선택합니다.
MyRootViewController
은 아직 보이지 않지만 응답자 체인에 계속 있기 때문에 이러한 상황이 발생합니다.
내가 지금까지 생각해 낸 최선의 해결책은 UISearchBar
을 서브 클래 싱하고 - (BOOL)canPerformAction:(SEL)action withSender:(id)sender
을 오버라이드하고, 잘라 내기, 복사, 붙여 넣기 또는 모두 선택을 위해 YES
을 반환하는 것입니다. 이렇게하면 iOS가 리스폰 더 체인을 더 내려다 보지 않게됩니다. 그러나 이것은 마치 해킹과 같은 느낌입니다. UISearchBar
을 다른 시스템과 일관되게 동작 시키려면이 방법을 사용하지 않아도됩니다. 단지 다른 곳에서 UIMenuController
을 사용하고 있기 때문입니다.
누가이 문제에 대해 기술적으로 올바른 해결책을 알고 있습니까?