MacOS 开发
来源:互联网 发布:淘宝 最贵的包子 编辑:程序博客网 时间:2024/06/03 19:38
- NSSavePanel
- 1需要设置权限
- 示例打开文件夹并保存图片到文件夹
- NSOpenPanel
- 常用的属性
- 调用示例
- OS X 6之后
- OS X 6之前
- 参考资料
NSSavePanel
1、需要设置权限
路径:target –> capabilitys –> file access
设置 user selected file 为 read/write。
如果不设置,会报错:
示例:打开文件夹,并保存图片到文件夹:
NSSavePanel *panel = [NSSavePanel savePanel]; panel.title = @"保存图片"; [panel setMessage:@"选择图片保存地址"];//提示文字 [panel setDirectoryURL:[NSURL fileURLWithPath:[NSHomeDirectory() stringByAppendingPathComponent:@"Pictures"]]];//设置默认打开路径 [panel setNameFieldStringValue:picName]; [panel setAllowsOtherFileTypes:YES]; [panel setAllowedFileTypes:@[@"jpg",@"png"]]; [panel setExtensionHidden:NO]; [panel setCanCreateDirectories:YES]; [panel beginSheetModalForWindow:self.window completionHandler:^(NSInteger result){ if (result == NSModalResponseOK) { NSString *path = [[panel URL] path]; NSData *tiffData = [self.imgView.image TIFFRepresentation]; [tiffData writeToFile:path atomically:YES]; } }];
效果图如下:
可见,设置title不会显示;
NSOpenPanel
常用的属性
在begin之前设置好即可
- CanChooseDirectories 是否可以选择目录
- AllowsMultipleSelection 是否允许多选
- AllowedFileTypes 允许选择的文件类型,如果都可以的话,就写nil
- DirectoryURL 默认打开的路径
- Prompt 默认的“打开”那两个字可以改变
调用示例
在按钮点击方法中,调用下面方法:
OS X 6之后
- (void)pickFile{ NSOpenPanel* panel = [NSOpenPanel openPanel]; [panel setAllowsMultipleSelection:YES]; //是否允许多选file [panel beginWithCompletionHandler:^(NSInteger result) { if (result == NSOKButton) { NSMutableArray* filePaths = [[NSMutableArray alloc] init]; for (NSURL* elemnet in [panel URLs]) { [filePaths addObject:[elemnet path]]; } NSLog(@"filePaths : %@",filePaths); } }];}
OS X 6之前
- (void)openFinder{ NSOpenPanel *panel = [NSOpenPanel openPanel]; [panel setCanChooseFiles:YES]; //是否能选择文件file [panel setCanChooseDirectories:YES]; //是否能打开文件夹 [panel setAllowsMultipleSelection:YES]; //是否允许多选file NSInteger finded = [panel runModal]; //获取panel的响应 if (finded == NSFileHandlingPanelOKButton) { // NSFileHandlingPanelCancelButton = NSModalResponseCancel; NSFileHandlingPanelOKButton = NSModalResponseOK, for (NSURL *url in [panel URLs]) { NSLog(@"文件路径--->%@",url); //同时这里可以处理你要做的事情 do something } }}
保存文件可使用 NSSavePanel
参考资料:
NSBeidou:http://www.jianshu.com/p/9a413adbd9b8
阅读全文
1 0
- MacOS 开发
- MacOS 开发
- MacOS 开发
- MacOS 开发
- MacOS 开发
- MacOS 开发
- MacOS 开发
- MacOS 开发
- MacOS 开发
- MacOS 开发
- MacOS 开发
- MacOS 开发
- MacOS 开发
- MacOS 开发
- MacOS 开发
- MacOS 开发
- MacOS 开发
- MacOS 开发
- Python|计蒜客——函数规律
- Android中关于GridView整体居中
- 焦大seo浅谈seo优化技巧有那些
- 最小生成树-kruskal 模板
- Android 关于arm64-v8a、armeabi-v7a、armeabi、x86下的so文件兼容问题
- MacOS 开发
- Day1
- HDU 3038
- jvm配置分析
- Asp.Net Core Mvc上Json序列化首字母大小写的问题
- 四种方案解决ScrollView嵌套ListView问题
- 经典算法面试题(一):两数交换的三种方法
- win7第一个caffe实验【识别人脸年龄和性别】
- mysql配置版本安装遇到的坑!