2011-08-06 45 views
4

我寫了一個Cocoa程序,在按下按鈕後更改光標。具體來說,光標包含一個圖像而不是指針。我使用下面的命令設置它:自定義NSCursor不適用於所有應用程序

NSImage *tmpImage = [NSImage imageNamed:@"pointer"]; 
NSCursor *pointer = [[NSCursor alloc] initWithImage:tmpImage hotSpot:NSMakePoint(10.0, 10.0)]; 
[pointer set]; 

這個工作和光標更改正確。但是,此更改不適用於所有應用程序。例如,當我在幻燈片模式中切換到Keynote演示文稿時,光標將變回箭頭。當我切換到用於演示文稿的PDF全屏顯示時,光標變爲一隻手(我相信這些是相應應用程序設置的默認光標)。

我的問題是:有沒有什麼辦法來覆蓋這些,只是保持我的自定義光標的所有應用程序?即使在Keynote幻燈片和PDF全屏視圖中,我也想保留更改的光標。有任何想法嗎?

謝謝!

+0

您是否找到了解決方案? –

回答

0

不可能爲其他應用程序更改光標,至少不能使用公共API。

要做到這一點的唯一方法是創建一個自定義無邊框窗口,它將只顯示光標圖像,然後使用CoreGraphics API來隱藏光標,並隨着鼠標移動而移動窗口。這大概是Apple如何處理可在Accessibility系統偏好設置中打開的大光標。

相關問題