アトトックラボ

2011年1月05日

View上でマウスカーソルを変更する

Posted by Yoichi Kurusaki

マウスカーソルがView上にある場合に、カーソルの形状を変更するには
NSViewのresetCursorRectsをオーバーライドし、ここでカーソルを変更する。

NSViewの下記のメソッドでカーソルを設定する。

- (void)addCursorRect:(NSRect)aRect cursor:(NSCursor *)aCursor

CustomView.m

#import "CustomView.h"


@implementation CustomView

- (id)initWithFrame:(NSRect)frame {
    self = [super initWithFrame:frame];
    if (self) {
        // Initialization code here.
    }
    return self;
}

- (void)drawRect:(NSRect)dirtyRect {
    // Drawing code here.
}


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


@end

xibファイル

NSViewを配置

20110105002500.png

配置したNSViewは、今回作成したCustomViewを使用

20110105002501.png

実行結果

CustomViewの外にカーソルがある場合

20110105002502.png

CustomView上にカーソルがある場合

20110105002503.png