gpt4 book ai didi

cocoa - 更改到另一个窗口后自定义 NSCursor 丢失

转载 作者:行者123 更新时间:2023-12-03 17:24:46 28 4
gpt4 key购买 nike

我有一个基本的 Cocoa 应用程序,带有一个模拟超链接的自定义 NSTextField

我使用以下代码在文本字段实现中设置自定义光标:

- (void) resetCursorRects {
[self addCursorRect: self.bounds cursor: [NSCursor pointingHandCursor]];
}

我还覆盖了 mouseUp: 并在单击标签时执行操作。就我而言,我通过 NSWorkspace 打开一个 URL。

问题:当浏览器打开时,“指向手”光标重置为正常箭头光标(因为最上面的窗口现在是 Safari)。但是,当我返回到我的应用程序并将光标移动到自定义超链接标签上方时,光标不会更改为“指向手”。

只有在调整窗口大小(并且重置光标矩形)后,光标才会再次工作。

我尝试在 mouseUp: 调用中使光标矩形无效,但这不起作用。

最佳答案

请在添加光标矩形之前添加一行重置,尽管文档不建议直接调用。或者您可以要求窗口执行此操作。

[self resetCursorRects];
...
[fatherWindow invalidateCursorRectsForView:self];
...
[self addCursorRect:[self bounds] cursor:[NSCursor pointingHandCursor]];

以下代码用于我们的一个应用程序,效果非常好:

- (void) resetCursorRects
{
[super resetCursorRects];
[self addCursorRect: [self bounds] cursor: [NSCursor openHandCursor]];
}

关于cocoa - 更改到另一个窗口后自定义 NSCursor 丢失,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9858815/

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