作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
NSDisableScreenUpdates();
[self.productsArrayController setFetchPredicate:predicate];
[self.productsArrayController setSortDescriptors:sortDescriptors];
[self.productsArrayController fetchWithRequest:[self.productsArrayController defaultFetchRequest] merge:YES error:nil];
NSSortDescriptor *lastSortDescriptor = [sortDescriptors lastObject];
[tableView setHighlightedTableColumn:[tableView tableColumnWithIdentifier:[lastSortDescriptor key]]];
[tableView setIndicatorImage:[NSImage imageNamed: ([lastSortDescriptor ascending]) ? @"NSAscendingSortIndicator" : @"NSDescendingSortIndicator"]
inTableColumn:[tableView tableColumnWithIdentifier:[lastSortDescriptor key]]];
NSLog(@"currentImage: %@", [tableView indicatorImageInTableColumn:[tableView tableColumnWithIdentifier:[lastSortDescriptor key]]]); /* DEBUG LOG */
NSEnableScreenUpdates();
上面的代码没有设置三角形排序图像。我正在设置多个排序描述符,但将其更改为单个排序描述符后,它开始在列标题中显示正确的图像。在这两种情况下, currentImage 都显示设置了正确的图像(降序排列相同):
currentImage: <NSImage 0x200495fc0 Name=NSAscendingSortIndicator Size={9, 9} Reps=(
"NSBitmapImageRep 0x20049f480 Size={9, 9} ColorSpace=Generic RGB colorspace BPS=8 BPP=32 Pixels=9x9 Alpha=YES Planar=NO Format=0 CurrentBacking=<CGImageRef: 0x2004a9e80>"
更改上述方法中的操作顺序并将 reloadData 发送到我的 tableView,对结果没有影响。
在我看来,setIndicatorImage 按预期工作,但不知何故图像没有显示在标题中,或者至少不可见。
我在这里缺少什么?
编辑
代码用于将 NSViewController 的子类放置在应用程序窗口的主视图中:
// adding view inside the main view
[mainView addSubview:view];
[view setFrame:[mainView bounds]];
[view display];
[mainView display];
最佳答案
好的,我刚刚找到了一些足够简单的解决方法:
[[[tableView tableColumnWithIdentifier:[lastSortDescriptor key]] headerCell]
setStringValue:[columnName stringByAppendingString:([lastSortDescriptor ascending]) ? @" ▲" : @" ▼"]];
关于cocoa - 如何在具有多个排序描述符的列上设置指示图像?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3600406/
我是一名优秀的程序员,十分优秀!