2014-01-24 86 views
0

我處於學習編程/ Cocoa的早期階段,我決定以編程方式創建一個簡單的UI,以更好地可視化代碼/ GUI之間的關係。我開闢了可可的默認模板在OS X我唯一的修改模板到目前爲止是:以編程方式向NSWindow添加一個NSButton實例

@property NSButton *theButton; 

在Appdelegate.h 和

- (void)applicationDidFinishLaunching:(NSNotification *)aNotification 
{ 
    CGRect buttonFrame; 

    buttonFrame = CGRectMake(20, 20, 15, 5); 
    self.theButton = [[NSButton alloc]initWithFrame:buttonFrame]; 
    [self.theButton setTitle:@"test"]; 
    [self.window addSubview:self.theButton]; 


} 

在Appdelegate.m。

但是我得到的錯誤:

[self.window addSubview:self.theButton];

No visible @interface for 'NSWindow' declares the selector 'addSubview:'

這是爲什麼?

+0

它是'self.window.view'? – nhgrif

回答

1

因爲NSWindow沒有addSubview:方法。該方法是NSView的一部分。您可能需要該窗口的contentView。

+0

謝謝。我想這與iOS上有點不同。我在iOS上學習的教程用[self.window addSubview:self.taskTable]完成了同樣的事情;因此混亂 – PopKernel

+1

我想指出,雖然iOS上的UIWindow有一個addSubview,它應該幾乎不會被用於此。你仍然想要添加一個按鈕或任何視圖到某種UIView。通常是rootViewController的視圖。 –

4

NSWindow從NSResponder類繼承,所以你可以像使用

[self.window.contentView addSubview: yourbutton];

但對於一個UIWindow就可以使用。 [self.window addSubview:button],因爲它從UIView繼承。希望它會更清晰...

相關問題