0
파인더 삽입 NSMenuItem 도구를 사용하여 마우스 오른쪽 단추를 클릭하여 항목을 추가하려고합니다. 클릭 한 파일/폴더의 경로에 따라 항목을 변경해야합니다. 그러나 finder inject를 사용하면 오른쪽 클릭하기 전에 메뉴 항목이 생성되는 것 같습니다.조건부 마우스 오른쪽 버튼으로 항목을 클릭하십시오 - finder
즉, 마우스 오른쪽 버튼으로 클릭 한 파일의 경로를 검사하는 조건과 관련하여 MenuItems를 편집 할 수 없습니다. 어떤 아이디어?
나는 아래의 방법으로 클릭 한 파일의 경로를 얻을 수 있습니다
-(NSMenuItem *)createMenuItem {
// I need to catch the path of the clicked item here.
NSMenuItem *menuItem = [[NSMenuItem alloc] initWithTitle:@"ITEM TITLE" action:@selector(myMethodClicked:) keyEquivalent:@""];
[menuItem setTarget:self];
return menuItem;
}
을 시도했습니다, 라인 참조 :
NSArray *selectedFiles = [[ILFinderMenu sharedInstance] selectedItems];
을하지만 메뉴 아이템이 추가되기 전에 나는 그것을해야합니다. 전체 기능도 아래에 추가됩니다.
- (void)myMethodClicked:(id)sender {
NSMenuItem *item = (NSMenuItem *)sender;
NSMenu *submenu = [item submenu];
NSArray *selectedFiles = [[ILFinderMenu sharedInstance] selectedItems];
NSString *selectedFilePath = [selectedFiles objectAtIndex:0];
NSString *appPath = @"/eclipse/";
if ([selectedFilePath rangeOfString:appPath].location != NSNotFound) {
// disable backup
NSMenuItem *backupMenuItem = [submenu itemAtIndex:1];
[backupMenuItem setEnabled:NO];
// enable share
NSMenuItem *shareItem = [submenu itemAtIndex:0];
[shareItem setEnabled:YES];
} else {
// disable share
NSMenuItem *backupMenuItem = [submenu itemAtIndex:0];
[backupMenuItem setEnabled:NO];
// enable backup
NSMenuItem *shareItem = [submenu itemAtIndex:1];
[shareItem setEnabled:YES];
}
}
이 질문에 대한 답변을 제공하지 않습니다. 비평하거나 저자의 설명을 요청하려면 게시물 아래에 의견을 남겨 둡니다. –
아무도 MethodSwizzling에 대한 메서드 이름을 제공하지 않습니다. OP가 finder 플러그인의 잘못된 메소드를 무시합니다. –