在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我加了他們 –