У меня совершенно нестандартный 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?