我已经创建了NSPersistentDocument的子类。我也重命名了这个窗口。但是当我运行应用程序时,我得到的应用程序窗口的标题是"Untitled“。没有可以用来更改标题的-setTitle:方法。有什么想法吗?我该怎么做呢?
发布于 2009-01-14 10:27:52
您是否通过向窗口发送setTitle:来设置标题?
如果是这样,那就错了。改为设置文档的displayName。(请记住,NSPersistentDocument是NSDocument的子类。)
发布于 2009-01-14 16:55:48
您不需要更改标题,您的用户可以通过保存文档来更改。
发布于 2009-09-29 03:45:03
您可以将窗口的标题绑定到文档,并使用Key-Value-Observation来更新它。
使用Interface Builder选择MyDocument.xib的“窗口”并移动到检查器中的“Bindings”选项卡。选中“title”以绑定到“File‘s Owner”,并将“Model Key Path”选为“title”。
然后在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
}https://stackoverflow.com/questions/442396
复制相似问题