그래서 나는 내가 원하는 결과를 다음을 사용하여 종료, 내보기 컨트롤러의 viewDidLoad에 방법에 다음 블록을 배치 :
다음
- (void)viewDidLoad {
[super viewDidLoad];
UIMenuItem *menuItem = [[UIMenuItem alloc] initWithTitle:@"Change Color" action:@selector(changeColor:)];
[[UIMenuController sharedMenuController] setMenuItems:[NSArray arrayWithObject:menuItem]];
[menuItem release];
}
는 내가보기에 다음을 추가 대신이 방법으로 인해 사용자 정의 UITextView 클래스의 뷰 컨트롤러의 방법 withSender :
- (BOOL)canPerformAction:(SEL)action withSender:(id)sender {
if (action == @selector(changeColor:)) {
if (textView.selectedRange.length > 0) {
return YES;
}
}
return NO;
}
나는 canPerformAction를 배치하기로 결정했습니다 : 텍스트가 나는 "텍스트 뷰를"라는 UITextView 내에서 선택 될 때 컨트롤러는 조건부로 항목을 표시합니다 O 옵션 (예 : 복사, 잘라 내기, 붙여 넣기 등)는 응답 체인의 모든 객체에서 메소드가 호출되기 때문에 정상적으로 동작합니다.
+1 그러나 changeColor 메서드가 내 사용자 정의 TableViewCell 클래스를 가리키고 존재하지 않기 때문에 충돌이 발생합니다. 이 컨트롤러를 뷰 컨트롤러로 지정할 수 있습니까? –
UIWindow가 키 윈도우인지 확인하고이 메소드를 구현해야 할 수도 있습니다. - (BOOL) canBecomeFirstResponder { return YES; } –