2012-01-08 62 views

回答

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

对于我的实现,我有一个不调整滚动型内的图像浏览器,所以我只有当我的数据使用此代码,如果照片是我的数据源阵列改变更新工具提示:

[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]; 
} 

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

+0

我怀疑如果滚动图像浏览器包含数百个图像可能会有性能问题。另一种方法是使用'visibleItemIndexes'来为可见项添加工具提示,并在视图滚动时刷新工具提示。 – JWWalker 2014-01-16 22:48:37

相关问题