IKImageBrowserView:如何显示每个项目的工具提示?

时间:2012-01-08 16:24:24

标签: cocoa appkit ikimagebrowserview imagekit

我挖掘了文档,但没有找到怎么做。如何为IKImageBrowserView中的每个项添加工具提示?

1 个答案:

答案 0 :(得分:6)

IKImageBrowserView是一个NSView,因此您可以使用以下函数添加工具提示矩形:

http://developer.apple.com/library/mac/#documentation/Cocoa/Reference/ApplicationKit/Classes/NSView_Class/Reference/NSView.html#//apple_ref/doc/uid/20000014-SW47

对于我的实现,我将图像浏览器放在一个不调整大小的scrollview中,因此我只需要在使用此代码更改数据时更新工具提示,其中images是我的数据源数组:

[imageBrowser reloadData];
[imageBrowser removeAllToolTips];
for (int i=0; i<[images count]; i++) {
    NSRect rect = [imageBrowser itemFrameAtIndex:i];
    ImageObject *image = [images objectAtIndex:i];
    [imageBrowser addToolTipRect:rect owner:self userData:image];
}

然后我实现了这个功能:

- (NSString*)view:(NSView *)view stringForToolTip:(NSToolTipTag)tag point:(NSPoint)point userData:(void *)data {
    ImageObject *image = (ImageObject*)data;
    return [image imageTitle];
}

如果您的图片浏览器更改了其布局(您可以调整其大小,添加/删除列,或者更改缩放等),则需要更新所有工具提示。