VKo*_*sun 14 cocoa sandbox osx-mavericks
我在我的Cocoa应用程序中做了一个简单的文件打开面板.我启用了权利和应用沙盒.但是在OS X 10.9上,当应用程序使用时打开一个对话框时NSOpenPanel,它会崩溃:
特定于应用程序的信息:
因未捕获的异常'NSObjectNotAvailableException'而终止应用程序,原因:'service com.apple.appkit.xpc.openAndSavePanelService无法代表由于{"proxy-communications-error"="错误而初始化NSOpenPanelService的实例Domain = NSCocoaErrorDomain代码= 4099 \"\ U041d\U0435\U0443\U0434\U0430\U043b\U043e\U0441\U044c\U0443\U0441\U0442\U0430\U043d\U043e\U0432\U0438\U0442\U044c\U0441\U0432\U044f\U0437\U044c\U0441\U043f\U0440\U043e\U0433\U0440\U0430\U043c\U043c\U043e\U0439-\U043f\U043e\U043c\U043e\U0449\U043d\U0438\U043a\U043e\U043c. \"(连接在此过程中无效.)UserInfo = 0x61000047dc00 {NSDebugDescription =此过程中的连接无效.}"; }"
资源:
self.panel = [NSOpenPanel openPanel];
panel.delegate = self;
panel.canChooseDirectories = YES;
panel.canChooseFiles = NO;
panel.canCreateDirectories = YES;
panel.allowsMultipleSelection = NO;
[self.panel beginSheetModalForWindow:contextWindow completionHandler:^(NSInteger returnCode) {
...
}];
Run Code Online (Sandbox Code Playgroud)
谁看过这个吗?
我认为您需要在应用程序权利中激活“用户选择的文件”!
尝试一下,在 xcode 5 beta 中看起来像这样,在 xcode 4 中应该位于项目的常规页面上,您可以在其中激活权利!
让我知道!
- - - - - 编辑
嗯,我认为你的问题在于你如何称呼该小组。
首先,使用以下命令初始化面板:
NSOpenPanel * openDlg = [NSOpenPanel openPanel];
[openDlg setCanChooseFiles:NO];
[openDlg setAllowsMultipleSelection:NO];
[openDlg setCanChooseDirectories:YES];
[openDlg setCanCreateDirectories:YES];
Run Code Online (Sandbox Code Playgroud)
最后,将对话框“call”更改为:
[self.panel beginSheetModalForWindow:contextWindow completionHandler:^(NSInteger returnCode) { ... }];
Run Code Online (Sandbox Code Playgroud)
到:
if ([openDlg runModal] == NSOKButton)
{ here you manage the user choice. }
Run Code Online (Sandbox Code Playgroud)
现在应该可以了!
| 归档时间: |
|
| 查看次数: |
3655 次 |
| 最近记录: |