NSAlert Over NSSavePanel

时间:2012-01-02 01:57:20

标签: objective-c nsalert nssavepanel

我是目标c的新手,我希望通过保存面板创建警报以获取用户确认是否覆盖现有文件,如文本编辑器将文件保存在具有相同文件名的目录中时警告显示在保存面板上要求更换或取消,当用户选择取消警报消失时,当用户选择更换警报消失然后保存面板。不保存面板消失然后警报显示。请帮忙

1 个答案:

答案 0 :(得分:1)

此代码已经过测试并且有效。如果文件已存在,它会发出警告。保存面板和文件替换警报将以Mac OS X设置使用的任何语言显示(请参阅日文示例的屏幕截图):

- (IBAction)saveTestFile:(id)sender 
{
    NSString *saveString = [NSString stringWithFormat:@"Hello World, it's %@!", [NSDate date]];
    NSSavePanel *savePanel = [NSSavePanel savePanel];
    if ([savePanel runModal] == NSFileHandlingPanelOKButton)
    {
        NSURL *saveURL = [savePanel URL];
        NSError *error = nil;
        if (![saveString writeToURL:saveURL atomically:YES encoding:NSASCIIStringEncoding error:&error])
        {
            NSLog(@"Unable to save file: %@", error);
        }
    }
}

Japanese Save Panel enter image description here