作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我使用以下代码设置我的 NSBrowser
矩阵单元格的工具提示:
- (void) browser:(NSBrowser *)sender willDisplayCell:(id)cell atRow:(int)row column:(int)column {
NSMatrix *matrix = [sender matrixInColumn:column];
NSLog(@"'%@'", [cell title]);
[matrix setToolTip:[cell title] forCell:[matrix cellAtRow:row column:column]];
}
大多数时候,这会产生精彩的工具提示。
然而,当悬停在某些单元格上时,工具提示会扩展至怪异的宽度,将原本令人愉悦的体验转变为既丑陋又令人困惑的体验。下面的屏幕截图显示了这种可怕的行为。
触发上图令人发指的工具提示的单元格的输出是:
'gnome-1.1-tb-linux.jar'
什么可能导致这些看似随机的暴行 - 我是否遗漏了一些明显的东西?
最佳答案
在这种情况下对我有用的解决方案是在我的 NSBrowserCell
子类中实现 - (NSRect)expansionFrameWithFrame:(NSRect)cellFrame inView:(NSView *)view
如下:
- (NSRect)expansionFrameWithFrame:(NSRect)cellFrame inView:(NSView *)view {
NSSize size = [self.tooltipText sizeWithAttributes:@{
NSFontAttributeName: [NSFont systemFontOfSize:[NSFont systemFontSize]]
}];
// Expansion frame displays below and indented to the right in relation to the cellFrame
NSRect rect = NSMakeRect(cellFrame.origin.x + 10, cellFrame.origin.y + size.height, size.width, size.height);
return rect;
}
关于objective-c - 防止 NSBrowserCell 工具提示过宽,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11740281/
我是一名优秀的程序员,十分优秀!