2013-03-01 5 views
0

좋아요. 따라서 새 SandBox 가이드 라인에 따라 파일을 여는 것은 특정 규칙을 준수해야합니다 (일명 NSOpenPanel을 사용하여 사용자가 시작 동작을 트리거해야 함). "공개"권한).Sandbox를 사용하여 파일 열기

그러나 여기 캐치 : 내 응용 프로그램에서

  • , 나는 그것의 전체 파일 관리자 (전체 트리 구조)를 가진 NSOutlineView에게있어
  • 사용자가 있어야하는데 개요보기에서 파일을 선택할 수있게되면 응용 프로그램에서 파일을 열 수 있습니다.

앱이 100 % 샌드 박스 호환이어야한다고 가정하면 어떻게해야합니까? 알려진 해결 방법이 있습니까? 심지어 가능할까요?

아이디어가 있으십니까?

답변

0

짧은 대답 : 당신은 그렇게 할 수 없습니다. 앱의 UI 내에 폴더의 내용을 표시하려면 먼저 열린 패널을 사용하거나 Finder에서 드래그하여 사용자가 열도록해야합니다.

+0

오, 좋아 ... 나는 샌드 박스를 정말 좋아한다 ... : S –

0

@omz이 말한 것처럼 응용 프로그램에서 응용 프로그램이 보여주는 모든 파일/폴더가 들어있는 폴더에 액세스 할 수있는 권한을 요청해야합니다. 개별 파일에 대한 권한은 필요 없지만 전체 디렉토리 구조를 단일 권한으로 가져온 다음 보안 범위가 지정된 책갈피로 저장하면 이후에 응용 프로그램을 실행할 때 해당 권한이 이미 부여됩니다.

앱을 실행해도 사용자에게 전체 하드 드라이브 또는 전체 사용자 디렉토리에 대한 액세스 권한을 요청할 수 있습니다.

내가 작성한이 클래스를 사용하여 모든 것을 단일 함수 호출로 마무리 할 수 ​​있습니다.이 함수 호출은 처음 실행시에만 요청되도록 권한을 유지합니다. https://github.com/leighmcculloch/AppSandboxFileAccess

NSOpenPanel을 수동으로 사용하려면 AppSandboxFileAccess의 코드를 사용하여 사용 권한을 얻은 다음 해당 사용 권한을 유지하면서 코드를 살펴보십시오.