Macos 建议保存未命名文档的名称

Macos 建议保存未命名文档的名称,macos,cocoa,nsdocument,Macos,Cocoa,Nsdocument,在nsdocument framework中,是否有方法建议初始保存对话框(无标题文档)的文件名用于文档?在Mac OS X v10.7及更高版本中: - (void)setDisplayName:(NSString *)displayNameOrNil v10.6,在NSDocument子类中重写: - (BOOL)prepareSavePanel:(NSSavePanel *)savePanel { if( [savePanel.nameFieldStringValue isEqu

在nsdocument framework中,是否有方法建议初始保存对话框(无标题文档)的文件名用于文档?

在Mac OS X v10.7及更高版本中:

- (void)setDisplayName:(NSString *)displayNameOrNil
v10.6,在NSDocument子类中重写:

- (BOOL)prepareSavePanel:(NSSavePanel *)savePanel
{
    if( [savePanel.nameFieldStringValue isEqualToString:@"Untitled"] )
        [savePanel setNameFieldStringValue:@"hello"];

    return [super prepareSavePanel:savePanel];
}
事实上,默认实现是空的,并返回YES,因此可以这样做

虽然不确定是否测试“Untitled”,但如果他们已经保存为“Untitled”并希望保留该名称,则将不起作用,并且可能不会本地化,因此可能会在中设置一个标志

- (id)initWithType:(NSString *)type error:(NSError **)error

或者已经有一个了?

在OSX 10.8中,您可以添加此方法

- (NSString *)defaultDraftName

谢谢你的建议。在v10.6和v10.7上进行此实现。测试fileURL:path是否为非nil,以确保该文件尚未保存为Untitled.ext。如果您不立即知道应该使用的显示名称,这将非常有用。例如,我的应用程序将无标题文档的显示名称设置为与文档中的标题字段相匹配;当然,保存的文档会显示实际的文件名<代码>-defaultDraftName有它的用途,但它没有相同的灵活性。