如何覆盖-windowTitleForDocumentDisplayName?

时间:2014-11-19 13:43:12

标签: objective-c macos nswindow nsdocument nswindowcontroller

windowTitleForDocumentDisplayNamehere的Mac开发人员参考中,它建议窗口控制器可以覆盖此方法,

  

自定义窗口标题。例如,CAD应用程序可以附加“-Top”或“-Side”,具体取决于窗口显示的视图。

但我找不到任何显示如何执行此操作的示例代码。当我在自定义窗口控制器类中重写此方法时,当我创建窗口控制器类的新实例时,它似乎不会被调用。我一直在网上搜索这个方法的信息几天,但几乎没有任何信息。其中大部分都是陈旧的 - 我的另一个question是Google最近关联的网页之一。

请帮忙!

2 个答案:

答案 0 :(得分:0)

只有当NSWindowController的document实际设置为NSDocument实例时才会调用此方法。

答案 1 :(得分:0)

在您的NSWindowController子类中:

- (NSString *)windowTitleForDocumentDisplayName:(NSString *)displayName
{
    NSString *newName = [NSString stringWithFormat:@"%@ Test", displayName];

    return newName;
}

注意:这是从NSDocumentController的openUntitledDocumentAndDisplay:方法中调用的,因此输入的displayName将是" Untitled"的一些变体。