【问题标题】:NSAlert Over NSSavePanelNSSavePanel 上的 NSAlert
【发布时间】:2012-01-02 01:57:19
【问题描述】:

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

【问题讨论】:

  • NSSavePanel 内置了这个功能...
  • 没有关联的函数。免费。如果你使用 NSSavePanel 让用户选择一个位置来保存文件,它会自动警告他们并要求确认他们选择的路径是否已经存在。真的,试试吧,你会看到...
  • 谢谢你的回答,但在我的应用程序中不要警告我,除了我希望用我的语言而不是英文的警报显示文本之外,我应该通过代码而不是自动发出警报,我做到了,但是保存面板消失然后警报将显示。我的问题是我希望警报出现在保存面板上

标签: objective-c nsalert nssavepanel


【解决方案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);
        }
    }
}

【讨论】:

  • 感谢我发现了我的错误,我的错误是我没有确定文件类型,并通过另一个程序向文件添加了扩展名。例子;当我使用名为“我的文件”的保存面板保存我的文件时,然后通过程序添加带有扩展名的“我的 file.txt”。下次保存面板没有警告我,因为“我的文件”与“我的 file.txt”不同。我想要我的语言而不是默认语言的自定义警报。例如“english”是默认的,但我的语言是“kurdish”
  • 很高兴听到您成功了!如果 Mac OS X 本身已本地化为库尔德语,您应该可以在系统偏好设置中启用它。不幸的是,我不确定 OS X 是否内置了对 Kurdish 的支持...
  • 不幸的是 OS X 没有内置支持 Kurdish 但它支持 kurdish 字母,如果我想要一些像 nsalert 这样的库尔德界面,我应该自己做,我认为对于初学者来说很难。
猜你喜欢
  • 2010-12-05
  • 1970-01-01
  • 1970-01-01
  • 2023-04-07
  • 1970-01-01
  • 1970-01-01
  • 2015-03-09
  • 2011-04-02
  • 1970-01-01
相关资源
最近更新 更多