动态对象创建

时间:2011-01-20 12:23:23

标签: cocoa macos nstableview nswindow

我确实创建了NSTableView,但这不会显示在NSWindow上。代码示例:

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

P.S。 我需要在没有IBOutlets的情况下进行应用

3 个答案:

答案 0 :(得分:1)

该代码是正确的。确保您已创建或加载了窗口(即window不是nil),并且您已为其指定了内容视图(window.contentView不是nil)。

另外,不要忘记发布tbl

答案 1 :(得分: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];

答案 2 :(得分:-1)

为什么不使用uitableview? 它是表格视图的标准类。

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