カーソルを設定するために使うのは、NSCursor クラスだ。矢印カーソルとか、I ビームとかは、すでにシステムが用意してる。これらを使う時は、それぞれに対応したクラスメソッドがあるんだ。
Application Kit/NSCursor.h
+ (NSCursor *)arrowCursor;
+ (NSCursor *)IBeamCursor;
これを使えば、簡単にカーソルが設定できるぜ。カーソルを変更するには NSView の addCursorRect:cursor: を使う。
(sample)
- (void)resetCursorRects
{
[self addCursorRect:NSMakeRect(0, 0, 40, 40)
cursor:[NSCursor IBeamCursor]];
[self addCursorRect:NSMakeRect(10, 10, 20, 20)
cursor:[NSCursor arrowCursor]];
}
これで、設定した領域にカーソルが入ったとき、カーソルが変わるよ。
好きな画像をカーソルとして設定したいときは、initWithImage:: を使おう。
Application Kit/NSCursor.h
- (id)initWithImage:(NSImage *)newImage hotSpot:(NSPoint)aPoint;
- (id)initWithImage:(NSImage *)newImage
foregroundColorHint:(NSColor *)fg
backgroundColorHint:(NSColor *)bg
hotSpot:(NSPoint)hotSpot;
newImage に画像を、hotSpot にホットスポットを設定する。カーソルサイズは 16x16 だ。
(sample)
- (void)resetCursorRects
{
NSCursor* cursor = [[NSCurosr alloc]
initWithImage:
[NSImage imageNamed:@"NSCrosshairCursor"
hotSpot:NSMakePoint(7, 7)];
}
これで、十字カーソルが設定される。十字カーソルのイメージは、NSCrosshairCursor という名前で取り出すことができるんだ。