2012-02-23 181 views
9

我有一个使用NSWindowController的子类创建的辅助窗口的Cocoa应用程序。我希望设置窗口标题。记录的方法调用是setTitle :.我从窗口控制器中调用了如下:可可:如何设置窗口标题?

- (void)windowDidLoad 
{ 
    // set window title 
    [[self window] setTitle:@"test string"]; 
} 

虽然这并不影响窗口的标题。

有什么建议吗?

+1

该方法是否被调用? – ThomasW 2012-02-23 04:29:50

回答

5

的NSWindowController类引用表明自定义标题,你应该重写windowTitleForDocumentDisplayName:方法。

+0

我阅读了文档,并试图没有效果 – tobin 2012-03-13 00:28:52

15

您可以连接IBOutlet中窗口中,然后更改代码:

[[self window] setTitle:@"test string"]; 

要这样:

[yourWindow setTitle:@"test string"]; 

例如全码:

.H

IBOutlet NSWindow *yourWindow; //Don't forget to connect window to this 

.M

-(void)awakeFromNib { 
    [yourWindow setTitle:@"test string"]; 
} 



,当然你可以更改标题不能编程:

标题可以属性更改检查

enter image description here

+3

你不需要那样做。 'NSWindowController'已经有一个'window'插座,你只需要连接它。 – 2012-02-23 13:11:22

+0

我试着用那个插座(见最初的帖子)没有任何影响。 – tobin 2012-03-13 00:31:20

+0

非常感谢。使用另一个出口而不是NSWindowController的默认“窗口”功能正常工作。任何人都可以解释这种行为 – tobin 2012-03-13 00:36:21

0

在斯威夫特这是可以做到的搭配:someOutlet.title = "New Title"

这里是住在你的窗口控制器类的例子:

@IBOutlet weak var contentOutlet: NSWindow! 

override func windowDidLoad() { 
    super.windowDidLoad() 

    contentOutlet.title = "New Title" 
} 

再次,记得要出口连接到窗口,或者只是从窗口拖动出口到你的窗口控制器类。

3

我只是用

self.window?.title = "Some String" 

,我创建的窗口。