2013-10-22 3 views
1

스크립트를 사용하거나 Cocoa를 사용하여 새로운 OSX Mavericks에서 응용 프로그램의 도크 아이콘을 제거하는 방법을 아는 사람이 있습니까? 일부 응용 프로그램의 도킹 아이콘을 제거한 후 제거해야하는 제거 프로그램이 있습니다. 그러나 기존 논리는 10.9에서 실패합니다. com.apple.dock.plist에서 아이콘 항목을 제거하고 도킹을 종료하여 지금까지 (10.8까지)이 작업을 수행했습니다. 그러나 매버릭스에서는 작동하지 않습니다. 그러나 NSUserDefaults을 사용하여 아이콘을 제거 할 수는 있지만 내 앱 (제거 프로그램)을 높은 권한으로 실행하면 오류가 발생합니다. 다른 아이디어/명령/솔루션이 도움이 될 것입니다.프로그래밍 방식으로 OSX Mavericks에서 도크 아이콘 제거

+0

혹시이 문제를 해결하기위한 방안을 찾으셨습니까? 우리 회사는 똑같은 문제를 겪고 있습니다. 단 하나의 항목을 다른 항목으로 바꿔야합니다. –

+0

여기에 몇 가지 정보가 있습니다. http : //macinstallers.blogspot.in/2013/12/remove-dock-icon-using-cocoa.html 높은 권한이없는 경우이 코드를 호출해야합니다. 그것이 당신을 위해 또한 작동하기를 바랍니다. –

답변

1

위의 블로그 게시물의 코드가 수정되어 작동합니다. 문제는 Mavericks에서 -persistentDomainForName:이 불변의 사전을 리턴했기 때문에 그것을 변경 가능하도록 만들어야 만했습니다. 블로그 게시물에 죽은 링크가 될 수있는 방법이 있기 때문에 여기에 게시하고 있습니다.

- (void)removeDockItemNamed:(NSString *)dockIconLabel 
{ 
    NSUserDefaults *userDefaults = [NSUserDefaults standardUserDefaults]; 

    NSMutableDictionary* dockDict = [[userDefaults persistentDomainForName:@"com.apple.dock"] mutableCopy]; 

    NSMutableArray* apps = [[dockDict valueForKey:@"persistent-apps"] mutableCopy]; 
    if (apps != nil) 
    { 
     NSArray* appsCopy = [apps copy]; 
     bool modified = NO; 
     for(NSDictionary *anApp in appsCopy) 
     { 
      NSDictionary* fileDict = [anApp valueForKey:@"tile-data"]; 
      if(fileDict != nil) 
      { 
       NSString *appName = [fileDict valueForKey:@"file-label"]; 

       if([dockIconLabel isEqualToString:appName]) 
       { 
        [apps removeObject:anApp]; 
        modified = YES; 
        break; 
       } 
      } 
     } 
     if(modified) 
     { 
      //If the dictionary was modified, save the new settings. 
      dockDict[@"persistent-apps"] = apps; 
      [userDefaults setPersistentDomain:dockDict forName:@"com.apple.dock"]; 
      //Reset the standardUserDefaults so that the modified data gets synchronized 
      //and next time when this function is invoked, we get the up-to-date dock icon details. 
      [NSUserDefaults resetStandardUserDefaults]; 
     } 
    } 

} 

출처 : http://macinstallers.blogspot.in/2013/12/remove-dock-icon-using-cocoa.html

관련 문제