2012-11-04 4 views
1

저는 iOS에서 아주 작은 편집기로 작업하고 있습니다. 하나의보기, 하나의 단추 및 textView 만 있습니다. 버튼이 눌려지면 커스텀 UIMenuController가 굵은 체로 바뀌고 이탤릭체로 바뀌고 필기체를 토글하는 3 가지 옵션으로 팝업됩니다.UIMenuController에서 표준 항목 제거하기

UITextView가 첫 번째 응답자 일 때 버튼을 누르면 '선택'및 '모두 선택'이라는 두 개의 기본 메뉴 항목도 표시됩니다.

나는 그들을 없애고 싶지만 어떻게해야할지 모르겠다. 다음 코드는 버튼을 눌렀을 때 호출됩니다.

- (IBAction)settingsPressed:(id)sender 
{ 
    UIMenuController *sharedController = [UIMenuController sharedMenuController]; 

    UIMenuItem *menuItem1 = [[UIMenuItem alloc] initWithTitle:bold ? @"Bold off" : @"Bold on" action:@selector(toggleBold:)]; 
    UIMenuItem *menuItem2 = [[UIMenuItem alloc] initWithTitle:italics ? @"Italics off" : @"Italics on" action:@selector(toggleCursive:)]; 
    UIMenuItem *menuItem3 = [[UIMenuItem alloc] initWithTitle:underline ? @"Underline off" : @"Underline on" action:@selector(toggleUnderline:)]; 

    NSArray *menuItems = @[menuItem1, menuItem2, menuItem3]; 

    CGRect drawRect = [sender convertRect:[sender bounds] toView:self.view]; 
    [sharedController setTargetRect:drawRect inView:self.view]; 

    [sharedController setMenuItems:menuItems]; 
    [sharedController setMenuVisible:YES animated:YES]; 

    [sharedController setMenuItems:nil]; 
} 

아무에게도 어떻게 설명 할 수 있습니까?

감사합니다.

답변

3

UITextView의 하위 클래스를 만듭니다. 작업이 @selector(select:) 또는 @selector(selectAll:) 인 경우 서브 클래스에서 canPerformAction:withSender:을 재정 의하여 NO을 반환하십시오. 자세한 내용은 다음을

+0

좋아! 답변 주셔서 감사합니다, 나는 이것을 구현하려고합니다 :) – Devos50

+0

서브 클래 싱없이 가능합니까? UIWebView 함께이 문제에 직면하지만 fmk에 의해 사용되는 구현을 덮어 쓰려면 제한된 옵션이 ... – Moonwalker