2012-02-23 3 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의 기본 '창'대신 다른 콘센트를 사용하면 올바르게 작동합니다. 아무도이 동작을 설명 할 수 있습니까 – 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" 

를 사용합니다.

관련 문제