gpt4 book ai didi

macos - 如何限制 NSOpenPanel 中的可写目录选择?

转载 作者:行者123 更新时间:2023-12-03 16:41:46 25 4
gpt4 key购买 nike

我希望用户选择要保存文件的目录。我最简单的代码(ARC):

NSOpenPanel *panel = [NSOpenPanel openPanel];

[panel setCanChooseDirectories:YES];
[panel setCanChooseFiles:NO];
[panel setAllowsMultipleSelection:NO];

if (NSOKButton == [panel runModal])
return [[panel URLs] objectAtIndex:0];
else
return nil;

但是,我想确保返回的路径可写,以便我可以将文件保存到其中。我应该如何修改我的代码?

最佳答案

按如下方式实现 shouldEnableURL 委托(delegate)方法:

- (BOOL)panel:(id)sender shouldEnableURL:(NSURL *)url
{
return [[NSFileManager defaultManager] isWritableFileAtPath:[url path]];
}

这将使所有不可写路径在打开的面板中呈现为不可选择。充当面板委托(delegate)的对象应符合 NSOpenSavePanelDelegate
不要忘记通过以下方式设置:

[panel setDelegate:self];

有关 NSOpenSavePanelDelegate 协议(protocol)的详细信息 can be found in the docs .

关于macos - 如何限制 NSOpenPanel 中的可写目录选择?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17316951/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com