#import"mouseView.h"
@implementation mouseView
- (id)initWithFrame:(NSRect)frame
{
self = [super initWithFrame:frame];
if (self) {
// Initialization code here.
}
return self;
}
- (void)drawRect:(NSRect)dirtyRect
{
NSLog(@"have draw");
if (flag==0) {
[[NSColorredColor] set]; //设置颜色
NSRectFill(dirtyRect);
}else
{
[[NSColoryellowColor] set]; //设置颜色
NSRectFill(dirtyRect);
flag=0;
}
//填充rect区域.
}
- (void)viewDidMoveToWindow {
[selfaddTrackingRect:[selfbounds] owner:selfuserData:nilassumeInside:NO];
}
//[cursor set] make the current cursor change
- (void)mouseEntered:(NSEvent *)theEvent
{
flag=1;
NSCursor *cursor = [NSCursorpointingHandCursor];
[cursorset];
[selfsetNeedsDisplay:YES];
}
//[cursor set] make the current cursor change
- (void)mouseExited:(NSEvent *)theEvent
{
flag=0;
NSCursor *cursor = [NSCursorarrowCursor];
[cursorset];
[selfsetNeedsDisplay:YES];
}
@end
本文介绍了一个使用Objective-C实现的鼠标交互视图组件。该组件能够根据鼠标是否悬停在其上改变背景颜色,并且更改光标的样式以提供反馈。文章详细展示了如何通过`NSView`子类化来实现这些功能,包括初始化、绘制背景、添加跟踪矩形以及处理鼠标进入和离开事件。
1400

被折叠的 条评论
为什么被折叠?



