• Open Menu Close Menu
  • Apple
  • Shopping Bag
  • Apple
  • Mac
  • iPad
  • iPhone
  • Watch
  • TV
  • Music
  • Support
  • Search apple.com
  • Shopping Bag

Lists

Open Menu Close Menu
  • Terms and Conditions
  • Lists hosted on this site
  • Email the Postmaster
  • Tips for posting to public mailing lists
Re: NSSearchField loses focus
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: NSSearchField loses focus


  • Subject: Re: NSSearchField loses focus
  • From: Justin Anderson <email@hidden>
  • Date: Wed, 21 Jan 2004 15:33:01 -0500

Wow, I can't believe I missed this. Apple's sample code says:

- (void)search:(id)sender {
[self rearrangeObjects];
}

Just change that to:

- (void)search:(id)sender {
searchString = [sender stringValue];
[self rearrangeObjects];
}

and sorting works without the binding. Sorry for not remembering that bit earlier.

- Justin

On Jan 21, 2004, at 2:27 PM, Peer Allan wrote:

Thanks for the reply Justin. Sure enough the sorting problem is working, but removing the value binding on the search string did not. When I do a check on its value in the search method it is always null. I am assuming that the likely cause of this is that the searchString is no longer accessible.

I attempted to make an outlet for the search field, but that had no effect. I am going to keep playing with it, but if anyone has any other suggestions I would appreciate it.

Peer

On Jan 21, 2004, at 12:23 PM, Justin Anderson wrote:

Well the reason you don't get sorting with an empty searchString is because you return the array "as is" in the first 2 lines of the method. I had to deal with both of the problems you're having a couple days ago. Sorting takes place in [super arrangeObjects:filteredObjects], so you'll want to always call that at the end of your subclass. Better code would be:

- (NSArray *)arrangeObjects:(NSArray *)objects {

if (searchString == nil) {
return [super arrangeObjects:objects];
}

//snip... lala...

}

And the NSSearchField loses focus because of the way the example has you set it up in IB. They make you connect it's search action but also bind it's value to searchString in your array controller. What ends up happening is:
NSSearchField calls the -search: action after timeout.
Array controller sets searchString from NSSearchField.
Binding causes NSSearchField to update itself with the "new" value in searchString.
Updating NSSearchField's value causes you to lose focus.

So get rid of the value binding on NSSearchField and you'll keep focus. I *think* that's all I had to do. If not, I'll pull out my old project.

- Justin Anderson
_______________________________________________
cocoa-dev mailing list | email@hidden
Help/Unsubscribe/Archives: http://www.lists.apple.com/mailman/listinfo/cocoa-dev
Do not post admin requests to the list. They will be ignored.
_______________________________________________
cocoa-dev mailing list | email@hidden
Help/Unsubscribe/Archives: http://www.lists.apple.com/mailman/listinfo/cocoa-dev
Do not post admin requests to the list. They will be ignored.

  • Follow-Ups:
    • Re: NSSearchField loses focus
      • From: Peer Allan <email@hidden>
References: 
 >NSSearchField loses focus (From: Peer Allan <email@hidden>)
 >Re: NSSearchField loses focus (From: Justin Anderson <email@hidden>)
 >Re: NSSearchField loses focus (From: Peer Allan <email@hidden>)

  • Prev by Date: Programmatically setting a radio button
  • Next by Date: Re: Small animation
  • Previous by thread: Re: NSSearchField loses focus
  • Next by thread: Re: NSSearchField loses focus
  • Index(es):
    • Date
    • Thread