>

http://www.macosxautomation.com/services/learn/ ), 새 컴퓨터에 응용 프로그램을 설치하면 파인더에 서비스가 빨리 표시되지 않습니다. 상황에 맞는 메뉴를 클릭하십시오.

이것은 페이스트 보드 서비스가/Applications 폴더를 다시 색인화하지 않고 새로 설치된 서비스를 "발견"하지 않았기 때문입니다.

또한/System/Library/CoreServices/pbs를 수동으로 실행하여 재색 인 및 검색을 강제 할 수 있음을 알고 있습니다.

여기서 질문은 내 응용 프로그램을 처음 설치하는 사용자에게 가능한 한 빨리 내 서비스가 표시되도록하는 가장 좋은 방법입니다.

응용 프로그램이 시작될 때 "/ System/Library/CoreServices/pbs"에 대한 시스템 호출을 실행할 수 있지만 사용자가 즉시 응용 프로그램을 시작하는 경우 문제가 부분적으로 만 해결됩니다. 더 나은 Cocoa API 기반 방법이 있습니다).

내 응용 프로그램이 일반적으로 상황에 맞는 메뉴를 통해서만 액세스되는 경우 사용자는 먼저 나가서 응용 프로그램을 시작하려고 생각하지 않습니다. 상황에 맞는 메뉴가 없을 때만 깨 졌다고 생각합니다.

설치 프로그램으로 응용 프로그램을 배포하지 않습니다. 필자는 애플이 일반적으로 제안하는 것처럼/Applications로 드래그 앤 드롭 할 수있는 번들을 제공하고 있습니다.

이러한 방식으로 설치를 수행 할 때 서비스 검색 프로세스를 촉진하여 사용자가 새로 설치 한 서비스가없는 시간이 없도록하는 방법이 있습니까?

부수적으로, 문제는 10.8에서 존재하지 않을 수있는 것으로 보인다 (또는 적어도 발음 된 것처럼 보인다). Apple은 최신 릴리스에서이 색인 생성을보다 빠르게 수행했을 수 있습니다.

  • 답변 # 1

    실제로 사용했습니다

    system("killall pbs;/System/Library/CoreServices/pbs -flush");
    
    

    오래 전에도 10.5가 문제가되었지만 설명했던 것처럼 내 앱 중 하나에서

    그러나이 기능을 시도해 볼 수 있습니다 :

    void NSUpdateDynamicServices(void)
    
    

    문서에 따르면 플러싱 pbs와 똑같이 작동하지만 더 깨끗한 솔루션입니다.

    또한 (설명에 따르면) 앱이 서비스에 지나지 않는 경우 실제로 서비스 만 고려하십시오 (서비스 설치)

    To build a standalone service, use the extension .service and store it in Library/Services.
    
    

  • 이전 python - 하나의 위젯을 포장하고 다른 키를 누를 때 다른 위젯을 모두 제거하는 기능 만들기
  • 다음 angularjs - Google 애널리틱스에서 사용자 ID를 추적하고 로그인 후 페이지를 다시로드하지 않으려면 어떻게합니까?