gpt4 book ai didi

objective-c - 向 View 添加许多工具提示时出现问题

转载 作者:行者123 更新时间:2023-12-03 16:38:57 24 4
gpt4 key购买 nike

我的 Cocoa 应用程序有一个 View ,其中显示了大约 50 个彩色矩形,它表示一些数据的热图。我不知道如何向每个矩形添加工具提示,以显示有关该矩形所代表的数据的信息。我查看了 NSView 的开发人员文档并添加了以下代码:

- (NSString *)view:(NSView *)view stringForToolTip:(NSToolTipTag)tag point:(NSPoint)point userData:(void *)data
{

// use the tags to determine which rectangle is under the mouse
if (tag == blueTag) {
return NSLocalizedString(@"The Blue rectangle", @"");
}
if (tag == redTag) {
return NSLocalizedString(@"The Blue rectangle", @"");
}
// we should never get to here!
return NSLocalizedString(@"Unknown tooltip area", @"");
}
<小时/>
// add tooltips for the rectangles (in my  drawRect method 
// after the rects have been initialized etc.)
[self removeAllToolTips];
redTag = [self addToolTipRect:startingRect owner:self userData:NULL];
blueTag = [self addToolTipRect:blueRect owner:self userData:NULL];

我遇到两个问题:
1)当我打印出工具提示的标签时,它们都显示 1 作为标签,即使它们用于两个不同的矩形。
2) stringForToolTip 方法永远不会被调用

任何帮助/建议都会很棒。谢谢!

最佳答案

我认为主要问题是您在 -drawRect: 中添加了工具提示矩形。仅当 View 大小调整时才需要更新工具提示矩形,而不是每次绘制时都需要更新。相反,添加一个方法来配置工具提示矩形,然后从 View 的 -init 方法中调用该方法。

然后,您可以覆盖 -setFrame: 并在调用 [super setFrame:newFrame] 后调用工具提示配置方法。

我应该指出,在您的代码中,两个矩形都会输出蓝色矩形,因为日志字符串是相同的......

关于objective-c - 向 View 添加许多工具提示时出现问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6076866/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com