jer*_*son 3 macos cocoa nstableview
我正在使用Cocoa Programming For Mac OS X(一本好书).本书给出的一个练习是构建一个简单的待办事项.UI具有表格视图,用于键入新项目的文本字段以及用于将新项目添加到表格的"添加"按钮.
在后端我有一个控制器,它是我的NSTableView的数据源和委托.控制器还实现了由"添加"按钮调用的IBAction方法.它包含一个NSMutableArray来保存待办事项列表项.单击该按钮时,操作方法将正确触发,新字符串将添加到可变数组中.但是,我的数据源方法未正确调用.他们在这里:
- (NSInteger)numberOfRowsInTableView:(NSTableView*)aTableView {NSLog(@"Calling numberOfRowsInTableView:%d",[todoList count]); return [todoList count]; }- (id)tableView:(NSTableView *)aTableView
objectValueForTableColumn:(NSTableColumn *)aTableColumn
row:(NSInteger)rowIndex {
NSLog(@"Returning %@ to be displayed", [todoList objectAtIndex:rowIndex]);
return [todoList objectAtIndex:rowIndex];
}
Run Code Online (Sandbox Code Playgroud)
这是擦.-numberOfRowsInTableView仅在应用程序首次启动时调用,而不是每次我向数组添加新内容时调用.-objectValueForTableColumn永远不会被召唤.我认为这是因为Cocoa非常聪明,在没有任何东西可以绘制的时候不会调用这个方法.我需要调用一些方法让表视图知道它的数据源已经改变了,它应该重绘自己吗?
Bar*_*ark 11
-[NSTableView reloadData];
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
9330 次 |
| 最近记录: |