作者: Cocoa China
2008年
4月20日
某些情况下,我们可能需要使用手工编写代码而不是使用Interface Builder建立NSTableView。尤其在我们需要修改NSTableView其中的内容的时候,这变得更加重要,而开发文档中写的不是很清楚。
以下这段简单的代码可以手工创建一个NSTableView,可以帮你节省一点查资料的时间。
点击这里阅读全文 »
作者: Cocoa China
2008年
4月2日
本例带您实现一个简单的例子,这个例子并不能做太复杂的事情,您可以从Finder中拖拽任何文件到列表里,拖拽后,文件名将会添加在列表中。
您可以在这个例子里学习NSTableView、绑定以及剪贴板的简单使用方法。

点击这里阅读全文 »
作者: Cocoa China
2008年
3月25日
当你的NSTableView做为一个拖拽目标时,你可能希望同时支持拖拽替换当前项目,或者拖拽后在当前位置插入新的项目。你需要使用NSTableView的 -setDropRow:dropOperation:方法。本文介绍如何通过代码实现NSTableView的这种拖拽功能。
点击这里阅读全文 »
作者: Cocoa China
2008年
3月25日
你的数据源需要实现如下两个方法:
- (int) numberOfRowsInTableView: (NSTableView *) tableView
- (id) tableView: (NSTableView *) tableView
objectValueForTableColumn: (NSTableColumn *) tableColumn
row: (int) row
作者: Cocoa China
2008年
3月25日
代码如下所示:
- (void) tableViewSelectionDidChange: (NSNotification *) notification
{
int row;
row = [tableView selectedRow];
if (row == -1) {
//do stuff for the no-rows-selected case
}
else {
// do stuff for the selected row
}
}
这段代码需要放在NSTableView的delegate里。如果没有delegate,可以将自身设置为delegate。
作者: Cocoa China
2008年
3月25日
在NSTableView排序时,我们可以通过增加一个小小的三角箭头图形,让表格的排序看得更加清楚。
将这段代码放到 mouseDownInHeaderOfTableColumn 或者 didClickTableColumn中
NSImage *indicatorImage;
if (sortAscending) {
sort your data ascending
indicatorImage = [NSImage imageNamed: @"NSAscendingSortIndicator"];
} else {
sort your data descending
indicatorImage = [NSImage imageNamed: @"NSDescendingSortIndicator"];
}
sortAscending = !sortAscending;
[tableView setIndicatorImage: indicatorImage
inTableColumn: tableColumn];
[tableView reloadData];
作者: Cocoa China
2008年
3月25日
如果你希望使NSTableView被拖拽到其他位置,你需要在数据源中实现如下代码:
- (BOOL) tableView: (NSTableView *) view
writeRows: (NSArray *) rows
toPasteboard: (NSPasteboard *) pboard
作者: Cocoa China
2008年
3月25日
如何响应NSTableView中双击项目的事件呢?
使用NSTableView的 -setDoubleAction:方法,给其指定一个标准的IBAction风格的方法选择器。
你还可以通过先设定-setEditable:NO,再通过-setTarget:方法获取双击的消息。
作者: Cocoa China
2008年
3月25日
当用户在修改表格中的数据时,按回车、TAB或者shift+TAB键,会结束当前的编辑,同时跳到下一行。
但是某些时候你可能不希望跳到下一行,用户希望编辑特定的行,并不想编辑其他行。那么如何用代码禁用这一功能呢?
点击这里阅读全文 »