我创建了一个基于文档的Mac OSX应用程序,当我在Interface Builder中编辑时,标题是正确的(我填写了检查器的那一部分),但是一旦程序运行,应用程序的标题就变成了“Untitled”。我该如何更改它?在我的IB Doc Window中,我有Files Owner、First Responder、NSApplication和NSWindow的实例。没有视图控制器,这是问题吗?我对Cocoa不熟悉。
我创建了一个基于文档的Mac OSX应用程序,当我在Interface Builder中编辑时,标题是正确的(我填写了检查器的那一部分),但是一旦程序运行,应用程序的标题就变成了“Untitled”。我该如何更改它?在我的IB Doc Window中,我有Files Owner、First Responder、NSApplication和NSWindow的实例。没有视图控制器,这是问题吗?我对Cocoa不熟悉。
一个解决方案是在你的 NSDocument
子类中覆盖 -displayName
方法:
- (NSString *)displayName {
if (![self fileURL])
return @"Some custom untitled string";
return [super displayName];
}
如果您正在使用自定义窗口控制器,还可以查看NSWindowController
的-windowTitleForDocumentDisplayName:
方法。
您创建了一份基于Cocoa的文档应用。对于新文档,Cocoa会将文档的建议名称设置为“Untitled”。
您是指应用程序菜单标题吗?它会在运行时更改以匹配应用程序的名称。最简单的更改方法是在Xcode中更改目标的“产品名称”构建设置。
- (NSString *)displayName
{
NSMutableString *displayName = [NSMutableString stringWithString:[super displayName]];
if ([self fileURL] == nil) {
NSString *firstCharacter = [[displayName substringToIndex:1] lowercaseString];
[displayName deleteCharactersInRange:NSMakeRange(0, 1)];
[displayName insertString:firstCharacter atIndex:0];
}
return [NSString stringWithString:displayName];
}