Re: Constraining a NSSlider to Certain Values
Re: Constraining a NSSlider to Certain Values
- Subject: Re: Constraining a NSSlider to Certain Values
- From: Peter Zegelin <email@hidden>
- Date: Tue, 8 Apr 2008 00:03:18 +1000
On 07/04/2008, at 10:46 PM, Jean-Daniel Dupas wrote:
Le 7 avr. 08 à 14:10, Peter Zegelin a écrit :
On 07/04/2008, at 9:07 PM, Jean-Daniel Dupas wrote:
Le 7 avr. 08 à 12:14, Peter Zegelin a écrit :
I'm trying to constrain the value of an NSSlider (while it is
being dragged) depending on the state of a modifier key and being
totally new to Cocoa am getting nowhere really fast! For a
start, I don't seem to be able to find a way to test for a
modifier key during the actual drag.
Can anyone help me here?
thanks!
Peter
To get the current modifier state during an event, -[NSEvent
modifierFlags];
And -[NSApplication currentEvent] or -[NSWindow currentEvent] to
get the current event (if you do not already have it).
OK but given, say, my own slidercell subclass, which event should I
check in and how do I get a ref to the sliders window? I'm
currently using 'continueTracking' which seems to be the right
event to override:
You can get the ref window by using the -[NSView window] method. You
can get the current event by using the NSApp global variable
(NSEvent *event = [NSApp currentEvent];)
And see also the link in the Ron's message.
Ah thanks - thats what I was after I think.
However it looks like I am going to have to think about this some more
because I've just noticed another problem. I now have the following in
my NSSliderCell subclass:
- (BOOL)continueTracking:(NSPoint)lastPoint at:(NSPoint)currentPoint
inView:(NSView *)controlView{
NSEvent *theEvent = [NSApp currentEvent];
if ([theEvent modifierFlags] & NSShiftKeyMask){
NSLog(@"shiftKey");
[self setFloatValue:0.0];
}
return YES;
}
which is more or less what I want. However now if I press the shiftkey
without moving the mouse then of course I never get this message so
the slider doesn't move to the new position until I move the mouse.
Same when I stop pressing the shift key. It looks like I need to have
a timer set to run in mousedown, continuously check the status of the
modifier keys and set the sliders modified position as needed. Thoughts?
regards,
Peter
_______________________________________________
Cocoa-dev mailing list (email@hidden)
Please do not post admin requests or moderator comments to the list.
Contact the moderators at cocoa-dev-admins(at)lists.apple.com
Help/Unsubscribe/Update your Subscription:
This email sent to email@hidden