2013-10-08 51 views
17

在OSX中,用戶可以使用輔助功能系統首選項來縮放鼠標光標。由於Lion(我認爲)OSX將光標存儲爲PDF,並能夠順利調整它們的大小。我想爲我的應用程序使用相同的功能,但使用PDF作爲NSImage用於我的NSCursor只是在設置光標縮放級別大於1.0時放大渲染的位圖。NSCursor:通過光標縮放(或視網膜)使用高分辨率光標

如何我:我的光標

  • 使用矢量圖形,並讓他們正確縮放像系統光標嗎?
  • 檢測當前的光標縮放級別。
  • 當光標縮放級別改變時會收到通知?

此外,使用HiDPI模式,我的畫面時,並恢復光標變焦設置,PDF光標模糊,以及因此究竟如何做你們視網膜IFY你的光標?

+0

您是否發現任何有關這些問題的任何內容? –

+1

這是我第二次嘗試獎勵答案,仍然沒有答案......我沒有選擇。 –

+0

OK ...太壞:( –

回答

3

我剛剛得到了@kongtomorrow告訴我的解決方案。下面是他發給我的片段:

NSImage * theImage = [NSImage imageNamed: @"CURS_128.pdf"]; 

NSImage *resultImage = [[NSImage alloc] initWithSize:[theImage size]]; 

for (int scale = 1; scale <= 4; scale++) { 
    NSAffineTransform *xform = [[NSAffineTransform alloc] init]; 
    [xform scaleBy:scale]; 
    id hints = @{ NSImageHintCTM: xform }; 
    CGImageRef rasterCGImage = [theImage CGImageForProposedRect:NULL context:nil hints:hints]; 
    NSBitmapImageRep *rep = [[NSBitmapImageRep alloc] initWithCGImage:rasterCGImage]; 
    [rep setSize:[theImage size]]; 
    [resultImage addRepresentation:rep]; 
} 

NSCursor* theCursor = [[NSCursor alloc] initWithImage: resultImage hotSpot: NSMakePoint(12,8)]; 
[self.scrollView setDocumentCursor: theCursor]; 

所以基本上這樣做是產生在圖像中的適當的比例因子,在原有基礎上的PDF幾個圖像表示。這適用於我,我的光標很好,很平滑。