2012-02-23 25 views
9

Tôi có một ứng dụng Cocoa với một cửa sổ phụ được tạo ra bằng cách sử dụng một lớp con của NSWindowController. Tôi muốn đặt tiêu đề cửa sổ. Cuộc gọi phương thức được ghi là setTitle :. Tôi đã gọi điều này từ trong bộ điều khiển cửa sổ như sau:Ca cao: Cách đặt tiêu đề cửa sổ?

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

Điều này không ảnh hưởng đến tiêu đề của cửa sổ.

Bất kỳ đề xuất nào vui lòng?

+1

Phương pháp đó có được gọi không? – ThomasW

Trả lời

5

Tham chiếu lớp NSWindowController chỉ ra rằng để tùy chỉnh tiêu đề, bạn nên ghi đè phương thức windowTitleForDocumentDisplayName:.

+0

Tôi đã đọc tài liệu và cố gắng không có ích – tobin

15

Bạn có thể kết nối cửa sổ của bạn với IBOutlet và sau đó thay đổi mã của bạn:

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

Để này:

[yourWindow setTitle:@"test string"]; 

Full mã cho ví dụ:

.h

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

.m

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



Và tất nhiên Bạn có thể thay đổi tiêu đề không programatically:

Tiêu đề có thể được thay đổi trong Attributes thanh tra:

enter image description here

+3

Bạn không cần phải làm điều đó. 'NSWindowController' đã có một cửa sổ' window', bạn chỉ cần kết nối nó. –

+0

Tôi đã thử với ổ cắm đó (xem bài đầu tiên) mà không ảnh hưởng gì. – tobin

+0

Cảm ơn bạn rất nhiều. Sử dụng một ổ cắm khác thay vì 'cửa sổ' mặc định từ các hàm NSWindowController chính xác. Bất cứ ai có thể giải thích hành vi này – tobin

0

Trong Swift này có thể được thực hiện với: someOutlet.title = "New Title"

Dưới đây là một ví dụ sống trong cửa sổ của bạn lớp điều khiển:

@IBOutlet weak var contentOutlet: NSWindow! 

override func windowDidLoad() { 
    super.windowDidLoad() 

    contentOutlet.title = "New Title" 
} 

Một lần nữa, hãy nhớ để kết nối ổ cắm vào cửa sổ, hoặc chỉ cần kéo một lối thoát từ cửa sổ đến cửa sổ lớp điều khiển của bạn .

3

tôi chỉ sử dụng

self.window?.title = "Some String" 

mà tôi tạo ra cửa sổ.

Các vấn đề liên quan