2011-01-20 112 views
1

我確實創建了NSTableView,但是這並不顯示在NSWindow上。代碼示例:動態創建對象

NSTableView *tbl = [[NSTableView alloc] initWithFrame:NSMakeRect(0,0,500,500)]; 
[window.contentView addSubview:tbl]; 

P.S. 我需要做應用程序,而不只是IBOutlets

+0

注意,表普遍預期是一個滾動視圖裏面,所以你幾乎可以肯定要創建的其中之一了。 – 2011-01-20 15:36:51

回答

0

嘗試:

NSTableView *tbl = [[NSTableView alloc] initWithFrame:NSMakeRect(0,0,500,500)]; 
[window setContentView:tbl]; 
[tbl release]; 

假設你window對象不是nil,並且你已經正確初始化它。

更新:有關使NSWindow可見的信息,請參閱here;具體做法是:

打開一個窗口,也就是說,通過調用的方法makeKeyAndOrderFront :, orderFront一個使窗口可見,通常是通過將窗口到應用程序的窗口列表來完成:

所以,在上面的代碼後,添加以下內容以使窗口可見:

[window makeKeyAndOrderFront:self]; 
+0

不是工作壓力太大:(我泰伯維和窗口不是零 – Arsynth 2011-01-24 05:50:01

-1

爲什麼不使用uitableview? 它是表視圖的標準類。 UITableView * tbl = [[[[UITableView alloc] initWithFrame:NSMakeRect(0,0,500,500)] autorelease];}}; [window.contentView addSubview:tbl]; [window makeKeyAndVisible];

+0

這個問題被標記OSX,所以它的假設是在Mac可可應用程序,而不是iOS應用程序,這是在你使用的UITableView。 – petert 2011-01-20 14:12:31

1

該代碼是正確的。確保您已創建或加載窗口(即window不是nil),並且您已爲其指定了內容視圖(window.contentView不是nil)。

另外,不要忘記釋放tbl