Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/cocoa/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Cocoa 更改到其他窗口后,自定义NSCursor丢失_Cocoa_Nstextfield_Nscursor - Fatal编程技术网

Cocoa 更改到其他窗口后,自定义NSCursor丢失

Cocoa 更改到其他窗口后,自定义NSCursor丢失,cocoa,nstextfield,nscursor,Cocoa,Nstextfield,Nscursor,我有一个基本的Cocoa应用程序,带有一个自定义的模拟超链接的NSTextField 我使用以下代码在文本字段实现中设置自定义光标: - (void) resetCursorRects { [self addCursorRect: self.bounds cursor: [NSCursor pointingHandCursor]]; } 我还重写了mouseUp:,并在单击标签时执行操作。在我的例子中,我通过NSWorkspace打开一个URL 问题:当浏览器打开时,“指针”光标重置为

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

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

- (void) resetCursorRects {
    [self addCursorRect: self.bounds cursor: [NSCursor pointingHandCursor]];
}
我还重写了
mouseUp:
,并在单击标签时执行操作。在我的例子中,我通过
NSWorkspace
打开一个URL

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

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


我尝试在
mouseUp:
调用中使游标rect无效,但没有成功

请在添加cursor rect之前添加一行reset,尽管文档不建议直接调用它。 或者你可以让窗户来做

[self resetCursorRects];
...
[fatherWindow invalidateCursorRectsForView:self];
...
[self addCursorRect:[self bounds] cursor:[NSCursor pointingHandCursor]];
以下代码用于我们的一个应用程序,效果非常好:

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