2012-03-25 71 views
1

我有一個基本的Cocoa應用程序,模擬超鏈接的自定義NSTextField更改爲另一個窗口後,自定義NSCursor丟失

我用下面的代碼來設置自定義光標在文本字段實現:

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

我也改寫mouseUp:並點擊標籤時執行的操作。在我的情況下,我通過NSWorkspace打開一個URL。

問題:當瀏覽器打開「手指」光標復位到正常的箭頭光標(因爲最頂部的窗口現在是Safari瀏覽器)。但是,當我返回到我的應用程序並將光標移動到我的自定義超鏈接標籤上時,光標不會更改爲「指針」。

只有當我調整窗口的大小(光標rects復位)再做光標的工作。

我試過無效的mouseUp:通話光標矩形,但沒有奏效。

回答

0

請在添加光標rect之前添加一行復位,但不建議由文檔直接調用。 或者你可以問窗口來做。

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

後續的代碼被用在我們的應用程序之一,它工作得很好:

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