我在使用NSSavePanel后关闭我的应用程序时遇到问题... 如果我打开应用程序,使用它然后关闭它,它会以正确的方式关闭...我在appdelegate中有这个代码以使我的应用程序关闭
- (BOOL)applicationShouldTerminateAfterLastWindowClosed:(NSApplication *)sender
{
return YES;
}
但是如果我只是打开面板来保存txt文件...使用NSSavePanel ...如果我只是打开它并且不使用它...单击“取消”按钮,我的应用程序没有t关闭...如果我点击红色x关闭应用程序,窗口消失,但应用程序保持活动状态,无法重新启动主窗口。 我用来保存txt文件的代码是:
NSSavePanel *save = [NSSavePanel savePanel];
if (nomePartita != nil)
{
[save setNameFieldStringValue:nomePartita];
}
[save setAllowedFileTypes:[NSArray arrayWithObject:@"dat"]];
[save setAllowsOtherFileTypes:NO];
NSInteger result = [save runModal];
if (result == NSOKButton)
{
// code to save the file here.....
}
问题必须在这一行中,因为只是这个(我的意思是我的其余代码用于创建和保存txt文件)我有这个问题... 任何人都知道为什么会发生这种情况? 任何提示都将非常感谢! 非常感谢, 和平, 马西
答案 0 :(得分:0)
试试这个:
NSSavePanel* panel = [NSSavePanel savePanel];
[panel setNameFieldStringValue:newName];
[panel beginSheetModalForWindow:[self window] completionHandler:^(NSInteger result){
if (result == NSFileHandlingPanelOKButton)
{
NSURL* theFile = [panel URL];
// Write the contents in the new format.
}
}];
我遇到了同样的问题,这解决了它。 对于窗口,您也可以使用[NSApp keyWindow]