Sandboxed app & NSOpenPanel causes crashes

前端 未结 4 1868
梦谈多话
梦谈多话 2021-02-19 07:40

I am doing a simple file open panel in my Cocoa app. I enable entitlements and app sandboxing. But on OS X 10.9, when the app should open a dialog using NSOpenPanel

4条回答
  •  臣服心动
    2021-02-19 08:31

    I think that you need to activate "User selected file" in your app entitlements!

    Give it a try, in xcode 5 beta looks like this, in xcode 4 should be on the general page of your project, where you activate entitlements!

    let me know!

    --------- Edit

    Well, i think your problem is in how you call the panel.

    First, initialize the panel with:

    NSOpenPanel * openDlg = [NSOpenPanel openPanel];
    
    [openDlg setCanChooseFiles:NO];
    [openDlg setAllowsMultipleSelection:NO];
    [openDlg setCanChooseDirectories:YES];
    [openDlg setCanCreateDirectories:YES];
    

    finally, change the dialog "call" from:

    [self.panel beginSheetModalForWindow:contextWindow completionHandler:^(NSInteger returnCode) { ... }]; 
    

    to:

    if ([openDlg runModal] == NSOKButton) 
    { here you manage the user choice. } 
    

    It should work now!

提交回复
热议问题