我有一个完全定制NSControl
的完全定制NSCell
。现在我想实现一些鼠标交互。例如,当用户单击控件时,我想将控件状态更改为,highlight
所以问题是:
1)我必须在哪里处理鼠标事件?在中NSControl
还是直接在中NSCell
?
目前我正在使用 NSCell 子类中的代码:
-(BOOL)startTrackingAt:(NSPoint)startPoint inView:(NSView *)controlView{
[self setHighlighted:YES];
return YES;
}
-(void)stopTracking:(NSPoint)lastPoint at:(NSPoint)stopPoint inView:(NSView *)controlView mouseIsUp:(BOOL)flag{
[self setHighlighted:NO];
}
2)NSCell
状态是否由 ? 自动管理NSControl
?如果我将NSControl
stete 设置为highlight
它将被镜像到NSCell
?
3)那启用的属性呢?目前我在 NSControl 中写了这段代码: 而在 NSControl 中的这段代码
-(void)setEnabled:(BOOL)flag{
[super setEnabled:flag];
[[self cell]setEnabled:flag];
[self updateCell:[self cell]];
}
您是否特别建议使用自定义 NSControl+NSCell 处理鼠标事件?