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

标签 cocoa appkit ikimagebrowserview imagekit

我深入研究了文档,但没有找到该怎么做。如何为 IKImageBrowserView 中的每个项目添加工具提示?

最佳答案

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 中,因此我只需使用此代码在数据更改时更新工具提示,其中图像是我的数据源数组:

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

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

关于cocoa - IKImageBrowserView:如何显示每个项目的工具提示?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8779133/

相关文章:

cocoa - 如何在 InterfaceBuilder 中将 ModelKeyPath 设置为 BOOL 属性的相反值

objective-c - 限时共享软件

cocoa - 光标位于 sibling 上方

swift - 为什么不激活(忽略OtherApps :) enable the menu bar?

xcode - 减小 cocoa 应用程序中图像的大小

cocoa - 创建自定义框架的步骤

objective-c - 线程错误 BAD_ACCESS (SIGSEGV)

swift - NSSegmentedControl 操作未触发

cocoa - NSEventPhaseEnded 未在带有 IKImageBrowserView 的 NSScrollView 上调用

objective-c - IKImageBrowserView 中重新排序的数据源方法,未被调用