选择后NSOpenPanel重新打开

时间:2013-08-21 22:40:16

标签: objective-c macos appstore-sandbox

有些用户报告他们无法在我的沙盒应用中选择文件,因为当他们选择并重新打开项目时。

在我的代码中没有任何地方我重新打开面板,所以我对为什么会发生这种情况感到有点困惑。

我的一位用户表示,控制台中多次记录以下消息:

"Keychain sandbox consume extension error: s=-1 p= cannot allocate memory"

我已经让他们对他们的钥匙串进行急救,并修复他们的磁盘权限,但这没有帮助。

有没有人有任何想法可能导致这个?

谢谢!

以下是触发NSOpenPanel的代码:

- (IBAction)selectHomeDirectory:(id)sender {
  NSOpenPanel *openPanel = [NSOpenPanel openPanel];
  [openPanel setTitle:@"Select your home folder"];
  [openPanel setMessage:@"Select your home folder..."];
  [openPanel setPrompt:@"Choose"];
  [openPanel setCanCreateDirectories:NO];
  [openPanel setCanChooseFiles:NO];
  [openPanel setCanChooseDirectories:YES];
  [openPanel setExtensionHidden:YES];
  [openPanel setAllowedFileTypes:nil];
  [openPanel setAllowsMultipleSelection:NO];
  [openPanel setDelegate:self];
  [openPanel setDirectoryURL:[NSURL fileURLWithPath:@"/Users/"]];

  [openPanel beginSheetModalForWindow:self.window completionHandler:^(NSInteger result) {
    if(result != NSOKButton || !openPanel.URL){
      return;
    }

    /* Saves the scoped URL, and then triggers a view change */
  }];
}

1 个答案:

答案 0 :(得分:0)

这被证明是一个小牛队的问题,已在后来的种子中得到修复。