1

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'

これらの一見ランダムな残虐行為を引き起こしている可能性があります-何か明らかなものが欠けていますか?

4

1 に答える 1

2

この場合、私にとってうまくいった解決策は、以下のよう- (NSRect)expansionFrameWithFrame:(NSRect)cellFrame inView:(NSView *)viewにサブクラスに実装することでした:NSBrowserCell

- (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;
}
于 2012-09-12T12:27:23.107 に答える