2012-02-23 7 views
9

私はNSWindowControllerのサブクラスを使用して作成した二次ウィンドウでCocoaアプリケーションを持っています。私はウィンドウのタイトルを設定したい。文書化されたメソッド呼び出しはsetTitle:です。これをウィンドウコントローラ内から次のように呼びました:ココア:ウィンドウタイトルを設定するには?

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

これはウィンドウのタイトルには影響しません。

お願いします。

+1

メソッドが呼び出さなっていることですか? – ThomasW

答えて

5

のNSWindowControllerクラスの参照は、タイトルをカスタマイズするために、あなたはwindowTitleForDocumentDisplayName:メソッドをオーバーライドする必要があることを示します。

+0

私は、ドキュメントを読んで無駄に – tobin

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'アウトレットがあります。接続するだけです。 –

+0

私はそのアウトレット(最初の記事を参照)と一緒に試してみましたが、影響はありませんでした。 – tobin

+0

ありがとうございます。 NSWindowControllerのデフォルトの 'window'の代わりに別のアウトレットを使うと正しく機能します。誰もがより良い別の場所で使用人々の時間を無駄にするために、この動作に – tobin

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" 

を使用しています。

関連する問題