Objective c 使用Xamarin/XCode在cocoa应用程序中打开文件对话框
我正在使用Xamarin/XCode构建一个cocoa桌面应用程序(我是新手)。我需要实现一个类似OpenFileDialog的特性 当我点击“加载文件”时,会弹出一个文件浏览器,让我选择一个文件。选择并按“确定”后,它应该在左侧的文本字段中显示文件路径。我已经尝试使用下面的代码实现了这一点,但是文件浏览器没有弹出。我错过了什么Objective c 使用Xamarin/XCode在cocoa应用程序中打开文件对话框,objective-c,xcode,macos,cocoa,modal-dialog,Objective C,Xcode,Macos,Cocoa,Modal Dialog,我正在使用Xamarin/XCode构建一个cocoa桌面应用程序(我是新手)。我需要实现一个类似OpenFileDialog的特性 当我点击“加载文件”时,会弹出一个文件浏览器,让我选择一个文件。选择并按“确定”后,它应该在左侧的文本字段中显示文件路径。我已经尝试使用下面的代码实现了这一点,但是文件浏览器没有弹出。我错过了什么 @synthesize LocationText = _LocationText; @synthesize MazeSolutionText = _MazeSolu
@synthesize LocationText = _LocationText;
@synthesize MazeSolutionText = _MazeSolutionText;
static NSURL * openFiles()
{
//NSArray * fileTypes = [NSArray arrayWithObjects:@"txt",nil];
NSOpenPanel* panel = [NSOpenPanel openPanel];
[panel setAllowsMultipleSelection:NO];
[panel setCanChooseDirectories:NO];
[panel setCanChooseFiles:YES];
[panel setFloatingPanel:YES];
//[panel setAllowedFileTypes:fileTypes];
if([panel runModal] == NSModalResponseOK)
{
return [panel URL];
}
return nil;
}
- (IBAction)LoadFileClicked:(id)sender {
NSURL * path = openFiles();
_LocationText.stringValue = path.absoluteString;
}
NSOpenPanel
返回一组NSURL
对象,因此您应该从if语句返回[[panel url]lastObject]
。否则,您的代码似乎是correct@AlexanderNorth我做了改变。但是,当我点击“加载文件”按钮时,什么也没有出现。我是否在此处正确触发了模态对话框的启动?您确定按钮已连接到方法本身吗?在openFiles()
方法中添加一个断点,看看应用程序现在是否停止工作。谢谢:)我正在使用Xamarin和XCode,所以有一些不匹配。已修复。NSOpenPanel
返回一个NSURL
对象数组,因此您应该从if语句返回[[panel url]lastObject]
。否则,您的代码似乎是correct@AlexanderNorth我做了改变。但是,当我点击“加载文件”按钮时,什么也没有出现。我是否在此处正确触发了模态对话框的启动?您确定按钮已连接到方法本身吗?在openFiles()
方法中添加一个断点,看看应用程序现在是否停止工作。谢谢:)我正在使用Xamarin和XCode,所以有一些不匹配。修好了。