在Xcode中4我创建了一个名为Tabletest
一个新的Cocoa应用程序,在我加入了厦门国际银行一个NSTableView
并控制拖动到应用程序的delegate object
(当你创建新的Cocoa程序自动创建) 。我将表的dataSource和委托设置为名为Tabletest App Delegate
的应用程序委托对象。NSTableView的显示不NSMutableArray的内容
在tabletestAppDelegate.h
和tabletestAppDelegate.m
我增加了(显然)需要
- (int)numberOfRowsInTableView:(NSTableView *)tableView;
- (id)tableView:(NSTableView *)tableView objectValueForTableColumn:(NSTableColumn *)tableColumn row:(int)row;
- (int)numberOfRowsInTableView:(NSTableView *)tableView
{
return (int)[myArray count];
}
- (id)tableView:(NSTableView *)tableView objectValueForTableColumn:(NSTableColumn *)tableColumn row:(int)row
{
return [myArray objectAtIndex:row];
}
并宣布NSMutableArray
像NSMutableArray * myArray;
然后我控制拖动表格的.h
和创建的属性,如:
@property (assign) IBOutlet NSTableView *myTable;
在.m
文件我加的numberOfRowsInTableView
和的实施
并补充说:
- (void)applicationDidFinishLaunching:(NSNotification *)aNotification
{
myArray = [[NSMutableArray alloc] initWithCapacity:10];
int i = 0;
for(i=0; i<10;i++)
{
[myArray insertObject: [NSString stringWithFormat:@"This is string %d!",i+1] atIndex:i];
}
NSEnumerator * enumerator = [myArray objectEnumerator];
id element;
while((element = [enumerator nextObject]))
{
// Do your thing with the object.
NSLog(@"%@", element);
}
}
的`的NSLog显示阵列得到填补,但从来没有信息显示在桌面上。我错过了什么?我是Cocoa的一名新手,我不知道为什么向简单的表添加信息太复杂了。
感谢您的帮助。
你是怎么实现这两种方法的? – 2011-09-15 13:03:57
你能编辑你的问题并向我们展示这两个数据源方法的实现吗?你检查过这些方法是否正在执行?你是否检查过这两种方法中是否有10个元素的数组? – 2011-09-15 13:04:47
@Bavarious我加了他们 –