我正在使用 NSBrowser(10.6SDK/Cocoa 应用程序),我想向浏览器列发送一条消息,使其调整其宽度以匹配该列中最大单元格的宽度。
在概念上似乎很基本,即使应该有一种方法,但没有。
这里有人解决过这个问题吗?你是怎么解决的?代码示例?
//更新我添加了drop-support。代码有效,但列中的新项目不适合(有一个椭圆)。
-(BOOL) browser:(NSBrowser *)browser acceptDrop:(id <NSDraggingInfo>)info atRow:(NSInteger)row column:(NSInteger)column dropOperation:(NSBrowserDropOperation)dropOperation
{
NSPasteboard* pboard = [info draggingPasteboard];
NSData* rowData = [pboard dataForType:CMCourseDataType];
NSIndexSet* rowIndexes = [NSKeyedUnarchiver unarchiveObjectWithData:rowData];
NSArray *selectedCourses = [[self coursesArrayController] selectedObjects];
Group *selectedGroup = [[self allGroupsArray] objectAtIndex:row];
[selectedGroup addCourses:[NSSet setWithArray:selectedCourses]];
[browser reloadColumn:1];
/* 下面尝试了新代码,以使第 1 列调整其宽度,但它们没有影响 */
[browser sizeToFit];
[[browser matrixInColumn:1] sizeToCells];
在 awakeFromNib 中,我设置:
[browser setColumnResizingType:NSBrowserUserColumnResizing];
谢谢