2012-02-23 106 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" 

,我創建的窗口。