Re: NSTextView question
Re: NSTextView question
- Subject: Re: NSTextView question
- From: Rudi Sherry <email@hidden>
- Date: Thu, 16 Mar 2006 15:17:32 -0800
On Mar 16, 2006, at 12:41 PM, Ricky Sharp wrote:
It may also be possible to set the first responder to the field/
view. That may be enough to end editing. Also, the keyboard focus
will not be "stolen".
If it really takes setting the first responder to nil, you may want
to consider getting the next responder. And, if that next
responder isn't the view, set it. This will keep users of full-
keyboard access happy.
I tried makeFirstResponder: nil and that didn't work -- subsequent
calls to [ mTextField stringValue ] returned the old value. I
debugged and found that makeFirstResponder: is returning YES, but the
responder isn't changing (this is typed into the email as I look at
the source on another computer, so there may be typos but it is the
code line for line):
NSResponder *before = [ window firstResponder ];
if ( [ window makeFirstResponder: nil ] )
{
NSResponder *after = [ window firstResponder ];
if ( after == before )
NSLog( @"same responder as before" ); // <--- gets here
}
Then I tried setting it to the next responder (which was the window
controller):
NSResponder *before = [ window firstResponder ]; // = the textField
NSResponder *next = [ before nextResponder ]; // = window controller
if ( [ window makeFirstResponder: next ] )
{
NSResponder *after = [ window firstResponder ]; // = window
controller
if ( after == before )
NSLog( @"same responder as before" ); // does not get here
if ( after == next )
NSLog( @"have new responder" ); // <--- gets here
}
... but the stringValue is not the changed value -- it's still the
old value!
I'm going to set the window controller to be the textField delegate
and see if textDidEndEditing is called at any time; other than that,
any suggestions?
Thanks,
Rudi
_______________________________________________
Do not post admin requests to the list. They will be ignored.
Cocoa-dev mailing list (email@hidden)
Help/Unsubscribe/Update your Subscription:
This email sent to email@hidden