2
테이블 셀을 길게 누르면 UIMenuController가 표시됩니다. 아래 코드를 사용하고 있습니다.내 UIMenuItems가 UIMenuController의 'more'섹션에 표시되는 이유는 무엇입니까?
- (void)onCellLongPressed:(UILongPressGestureRecognizer *)recognizer {
if (recognizer.state == UIGestureRecognizerStateRecognized) {
ContactTableViewCell *cell = (ContactTableViewCell *)recognizer.view;
[cell becomeFirstResponder];
UIMenuItem *item1 = [[UIMenuItem alloc] initWithTitle:@"ME" action:@selector(setMe)];
UIMenuItem *item2 = [[UIMenuItem alloc] initWithTitle:@"YOU" action:@selector(setYou)];
[theMenu setMenuItems:[NSArray arrayWithObjects:item1, item2, nil]];
UIMenuController *theMenu = [UIMenuController sharedMenuController];
[theMenu setTargetRect:[cell frame] inView:[self tableView]];
[theMenu setMenuVisible:YES animated:YES];
}
}
내 문제는 내가 셀을 길게 누르면 모든 기본 메뉴 항목이 팝업된다는 것입니다. 메뉴가 팝업되면 내 메뉴 항목 "SAVE"및 "DELETE"가 표시되지 않습니다. '더보기'메뉴를 선택하면 표시됩니다. 아래 스크린 샷을 게시했습니다.
스크린 샷 1 : 셀을 길게 누르면 팝업 메뉴가 나타납니다.
스크린 샷 2 : 메뉴 나 스크린 샷에 "추가"메뉴 항목을 누르면 1
나는 스크린 샷 2 메뉴가 때 열려 셀을 길게 누르십시오.
- 여기서 내가 뭘 잘못하고 있니?
- 여기에 무엇이 누락 되었습니까?
- 제대로 작동하려면 어떻게해야합니까?
오 .. 고맙습니다 ..하지만 내가 돌아 오지 않으면 메뉴가 전혀 표시되지 않습니다. 어떤 특별한 경우에만 아니오를 반환해야합니까? – EmptyStack
@ Graham Lee : 고마워 .. 사실 canPerformAction : withSender : method를 사용하기 전에 이해하지 못했습니다. 이제 그걸 이해했습니다 .. 그 작동 .. 한 가지 더, 이제는 단지 첫 번째 라인을 이해했습니다 ** "기본 항목을 비활성화하려면 canPerformAction : withSender : 메소드가 필요합니다."** :) 감사합니다. 도와주세요 .. – EmptyStack
@ 사이먼, 귀하의 코드가 바뀌 었는지 공유 할 수 있습니까? 나는 아직도 특정한 경우에 아이템을 보여주지 않는 방법을 이해하지 못한다. 내가 도와 줄 수 있을까? –