gpt4 book ai didi

objective-c - 防止 NSBrowserCell 工具提示过宽

转载 作者:行者123 更新时间:2023-12-03 17:04:56 25 4
gpt4 key购买 nike

我使用以下代码设置我的 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]];
}

大多数时候,这会产生精彩的工具提示。

然而,当悬停在某些单元格上时,工具提示会扩展至怪异的宽度,将原本令人愉悦的体验转变为既丑陋又令人困惑的体验。下面的屏幕截图显示了这种可怕的行为。

Wide load

触发上图令人发指的工具提示的单元格的输出是:

'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/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com