微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

非文档应用程序Cocoa中的“另存为”

如何解决非文档应用程序Cocoa中的“另存为”

| 我正在研究一个项目,该项目实际上是使用\“ sox \”通过shell脚本创建文件的。该应用程序不是基于文档的,它的全部工作是调用一个脚本来创建文件,并且在内部不保存任何数据。但是,我需要在运行脚本之前提示用户保存文件的位置以及要使用的文件名。拥有“另存为.. \”对话框以从用户获取文件路径/文件名并传递到shell脚本的最佳方法是什么?     

解决方法

这很简单。您用ѭ0tagged标记了这个问题,而这正是您要使用的。
- (IBAction)showSavePanel:(id)sender
{
    NSSavePanel * savePanel = [NSSavePanel savePanel];
    // Restrict the file type to whatever you like
    [savePanel setAllowedFileTypes:@[@\"txt\"]];
    // Set the starting directory
    [savePanel setDirectoryURL:someURL];
    // Perform other setup
    // Use a completion handler -- this is a block which takes one argument
    // which corresponds to the button that was clicked
    [savePanel beginSheetModalForWindow:someWindow completionHandler:^(NSInteger result){
        if (result == NSFileHandlingPanelOKButton) {
            // Close panel before handling errors
            [savePanel orderOut:self];
            // Do what you need to do with the selected path
        }
    }];
}
另请参见《文件系统编程指南》中的“保存面板”。     

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。