Вы можете получить курсор по умолчанию с помощью - [NSCursor arrowCursor]. Если у вас есть курсор, вы можете получить его изображение с помощью - [NSCursor image]. Вы не должны изменять изображение другого объекта, поэтому вы должны скопировать это изображение. Затем вы должны отредактировать изображение и создать новый курсор с - [NSCursor initWithImage: hotSpot:]. Ваш код должен выглядеть примерно так:
- (NSImage *)customArrowCursorImage {
NSImage *image = [[[NSCursor arrowCursor] image] copy];
[image lockFocus];
/// Do custom drawing
[image unlockFocus];
}
- (NSCursor *)customArrowCursor {
NSImage *image = [self customArrowCursorImage];
NSPoint hotSpot = [[NSCursor arrowCursor] hotSpot];
return [[[NSCursor alloc] initWithImage:image hotSpot:hotSpot] autorelease];
}
Вы должны иметь возможность заменить белый цвет изображения на пользовательский цвет с помощью основного фильтра изображения. Но если вы просто хотите начать, вы можете использовать NSReadPixel () и NSRectFill для окрашивания одного пикселя за раз. Рисование одного пикселя за раз с помощью NSReadPixel и NSRectFill будет исключительно медленным, поэтому вы должны сделать это только для того, чтобы понять, как все это работает.