gpt4 book ai didi

cocoa - NSOpenPanel URL 到字符串

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

我使用下面的代码打开文件

    NSOpenPanel * panel = [NSOpenPanel openPanel];
[panel setCanSelectHiddenExtension:YES];
[panel setRequiredFileType:@"scpt"];
[panel setAllowsOtherFileTypes:NO];

[panel
beginSheetForDirectory:nil
file:@"Script"
modalForWindow:[self window]
modalDelegate:self
didEndSelector:@selector (openFileDidEnd:returnCode:contextInfo:)
contextInfo:nil];

-(void)openFileDidEnd:(NSSavePanel*)panel returnCode:(int)returnCode contextInfo:(void*)contextInfo
{


if(returnCode == NSOKButton)
{

NSString *s=[[panel URL] absoluteString];
[NSThread detachNewThreadSelector:@selector(setFileString:) toTarget:self withObject:s ];

}
};

的值为“file://home/Users/myName/Desktop/1.scpt”

如果我打电话

bool b=[[NSFileManager defaultManager] fileExistsAtPath:@"file://home/Users/myName/Desktop/1.scpt"];

检查路径s的文件是否存在,总是返回0

但是如果我检查 Finder,我发现它的路径是“/Users/myName/Desktop/1.scpt”

bool b=[[NSFileManager defaultManager] fileExistsAtPath:@"/Users/myName/Desktop/1.scpt"];

将返回YES!

如何从 NSOpenPanel 的 url 获取正确的字符串路径?

欢迎大家留言

最佳答案

NSString *s=[[panel URL] absoluteString];

应该是

NSString *s=[[panel URL] path];

如果您的目标是 Sn​​ow Leopard 或更高版本,我建议使用

- (void)beginSheetModalForWindow:(NSWindow *)window completionHandler:(void (^)(NSInteger result))handler

因为您使用的方法已被弃用,并且使用 block 要容易得多。

关于cocoa - NSOpenPanel URL 到字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7867076/

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