gpt4 book ai didi

cocoa - 更改自定义 View 中的工具提示

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

我有一个示例项目:

http://ericgorr.net/cocoadev/tooltip.zip

我想做的是为整个 View 定义一个工具提示矩形,但能够在光标在 View 内移动时更改工具提示。

有办法做到这一点吗?有没有办法在调用 view:stringForToolTip:point:userData: 时强制它隐藏当前工具提示并显示新工具提示?

我可以创建自己的窗口来模拟真实的工具提示,但想确保没有任何内置功能可以支持此操作。

最佳答案

检查 MAAttachedWindow 示例项目:
http://mattgemmell.com/source/
创建自定义工具提示的良好开端。

NSView 有专门的鼠标事件处理程序。
只需根据这些事件更改 NSView(工具提示)即可。
我添加了一些片段来帮助您入门。

- (void)mouseMove:(NSEvent *)theEvent {

NSPoint mousePositionInWindow = [theEvent locationInWindow];

}

- (void)mouseDown:(NSEvent *)theEvent {

}

- (void)mouseDragged:(NSEvent *)theEvent {

}

- (void)mouseUp:(NSEvent *)theEvent {

}

对评论的回复:

有一次我遇到了完全相同的问题:一个 View 具有连续的工具提示更新,显示光标位置和一些附加信息。我发现它从来没有与 native 工具提示一起使用。最后我想出了上面的解决方案,它很容易实现,而且看起来更好。

您还可以在 NSView 本身内绘制与光标位置相关的自定义工具提示,而不是使用单独的窗口。您还可以在现有 NSView 之上放置一个额外的 NSView 以显示自定义工具提示。

我不喜欢 native 工具提示行为。显然,它们具有无法更改的内置时间延迟,例如:光标必须在一个位置上停留一段时间才能第一次显示工具提示。一旦第一个工具提示出现,下一个就会以更少的延迟显示,但这仍然很烦人。

当然,您始终可以在 View 附近的标签中显示信息,这非常容易实现。但这并不是您问题的真正答案:)

关于cocoa - 更改自定义 View 中的工具提示,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5397719/

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