2009-01-14 26 views
0

我已经子类化了NSPersistentDocument。我也重命名了窗口。但是当我运行该应用程序时,我将应用程序窗口的标题显示为“无标题”。没有-setTitle:方法可以用来更改标题。任何想法我怎么能做到这一点?如何给NSPersistentDocument窗口标题

回答

3

您是否通过向窗口发送setTitle:来设置标题?

如果是这样,那就错了。改为设置文档的displayName。 (请记住,NSPersistentDocumentNSDocument的一个子类。)

3

您不更改标题,您的用户通过保存文档来完成。

0

您可以将窗口标题绑定到文档并使用键值观察来更新它。

使用界面生成器选择MyDocument.xib的“窗口”并移到检查器中的“绑定”选项卡。检查'标题'绑定到'文件的所有者'和'模型关键路径'为'标题'。

然后在你的NSPersistentDocument的子类,如果你想改变你可以使用志愿窗口的标题添加以下代码

@interface MyDocument : NSPersistentDocument { 
    NSString * _title; 
} 
@end 

@implementation MyDocument 

//P All kinds of all your good stuff here 

- (NSString *) title { 
    return _title; 
} 

@end 

现在。例如

- (BOOL)readFromURL:(NSURL *)absoluteURL 
      ofType:(NSString *)typeName 
       error:(NSError **)outError { 

    //P All your good code 

    [self willChangeValueForKey:@"title"]; 
    _title = [absoluteURL lastPathComponent]; 
    [self didChangeValueForKey:@"title"]; 

    //P More good code 

}