2013-04-17 3 views
1

UIMenuController을 내 app에서 구현하여 사용자 정의 tableviewCell에서 텍스트를 복사합니다.테이블 뷰 인덱스를 가져 오는 사용자 지정 UIMenuController 또는 기본 UiMenuController에서 원하지 않는 옵션 제거

는 그 작업을 수행하는 두 가지 옵션,

옵션 1. 사용 tableviews shouldShowMenuForRowAtIndexPath 위임 방법

옵션 2. 사용자 정의 UIMenuController 있습니다. (필자는 다른 목적으로 didSelect를 사용하고 싶지 않습니다.)

실제로 표시하고 싶은 것은 - 표시하려면 복사 전용 옵션을 테이블보기 &에서 (길게 누르거나 두 번 탭하면) 해당 tableView의 indexPath을 캡처 할 수 있습니다.

옵션 1의 문제는 기본적으로 잘라 내기, 복사, 붙여 넣기 등 세 가지 옵션이 있습니다. 옵션 2 문제는 길게 눌러 제스처 인식기 메서드가 indexPath 정보를 갖지 않아서 테이블의 인덱스를 가져올 수 없습니다.

두 가지 작업을 모두 수행 할 수있는 방법이 있습니까 (제스처에서 indexPath를 가져 오는 복사 옵션 &).

+0

중복 삭제 http://stackoverflow.com/questions/10505755/removing-default-cut-copy-paste-from-uimenucontroller-in-a-tableview – jrc

답변

0

옵션 2가 작동합니다. 길게 누르는 방법으로 indexpath를 얻을 수 있습니다.

if (recognizer.state == UIGestureRecognizerStateBegan) { 
    UITableView *cell = (UITableView *)recognizer.view; 
    NSIndexPath *indexPath = [self.tableView indexPathForCell:cell]; 

    UIMenuController *menu = [UIMenuController sharedMenuController]; 
    [menu setMenuItems:[NSArray arrayWithObjects:flag, approve, nil]]; 
    [menu setTargetRect:cell.frame inView:cell.superview]; 
    [menu setMenuVisible:YES animated:YES]; 
} 

클래스의 indexpath를 기억하고 그에 대한 액세스 권한을 얻으십시오.