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

发布于 2024-12-25 10:59:39 字数 61 浏览 2 评论 0原文

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

I digged in documentation but didn't find how to do. How can I add tooltip for every item in IKImageBrowserView?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

寄居人 2025-01-01 10:59:39

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

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

The IKImageBrowserView is an NSView, so you can add the tooltip rectangles using these functions:

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

For my implementation, I have the image browser inside a scrollview that doesn't resize, so I only have to update the tool tips when my data changes using this code, where images is my datasource array:

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

Then I implemented this function:

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

If your image browser changes its layout (you resize it adding/removing columns, or you change the zoom, etc) you will need to update all the tool tips.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文