2012-01-08 58 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

相關問題