• 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: setState not working as expected
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: setState not working as expected


  • Subject: Re: setState not working as expected
  • From: Matt Neuburg <email@hidden>
  • Date: Wed, 26 Sep 2007 11:40:51 -0700
  • Thread-topic: setState not working as expected

On Tue, 25 Sep 2007 23:39:25 -0400, Bill Allaire <email@hidden> said:
>I have a NSSearchField which is connected to a NSMenu by way of the
>searchMenuTemplate in IB (Interface Builder).  The menu is working
>great in that the recently searched items show up, the two
>NSMenuItems items created to make use of
>NSSearchFieldClearRecentsMenuItemTag and
>NSSearchFieldNoRecentsMenuItemTag all work well and as expected.  I
>followed "Introduction to Search Fields" to accomplish this.
>
>The last feature I wanted to add to this menu is to allow the user to
>select which column (all or pick an individual column from the menu)
>to filter content,  somewhat similar to what is in iTunes and its
>search box with a choice of "All" or "Album" or "Artist", etc.  I
>added three NSMenuItems to the NSMenu and titled them accordingly and
>gave each a different tag starting at 1 and ending at 3.  All three
>share the same target.  The first NSMenuItem is set to a state of
>"On".  The other two are set to a state of "Off".
>
>Here is a sample of state change.  There are three NSMenuItems items
>(in addition to the above mentioned items):
>- Search All (initial state set to "On" via IB)
>- Command (intial state set to "Off" via IB)
>- Connection (ditto)
>
>Run application.  Pull down menu from the search field and choose,
>say, Connection.  The target method logs the state of "Search All" as
>NSOnState.  The target method sets the state for "Connection" to
>NSOnState.  It then sets the state of "Search All" to NSOffState with
>the intent of removing the check mark beside it, leaving "Connection"
>as the only item with a check mark. I then log the state of "Search
>All" after the state change and at this point and it shows
>NSOffState.  So far so good.  I pull the menu down again and both
>"Search All" and "Connection" have check marks.  Not good.  I also
>notice that if I click back on "Search All", to turn it to an on
>state, the logging, which logs the state before and after the call to
>setState:, shows no change in state!  Like it's not responding to the
>message being sent.
>
>I suspect there is something going on with how the NSSearchField is
>using this menu that I don't understand.

You don't give any code so clearly you don't want (and won't get) specific
help. But in general, you might find it easiest to set menu item state in
validateMenuItem:. All menu items arrive here, so you can check the tag and
the current state of the app and set that menu item's state accordingly. For
a working example, download my Thucydides app from versiontracker and look
at the code for the *earlier* versions of the app (Thucydides and
ThucydidesBinding), where I was using an NSSearchField menu to set search
options. (In the current version of the app, ThucydidesCoreData, I use a
different interface involving radio buttons and predicates.) m.

--
matt neuburg, phd = email@hidden, <http://www.tidbits.com/matt/>
A fool + a tool + an autorelease pool = cool!
One of the 2007 MacTech Top 25: <http://tinyurl.com/2rh4pf>
AppleScript: the Definitive Guide - Second Edition!
<http://www.amazon.com/gp/product/0596102119>



_______________________________________________

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

  • Follow-Ups:
    • Re: setState not working as expected
      • From: Bill Allaire <email@hidden>
  • Prev by Date: Re: NIB bug? Outlets = nil
  • Next by Date: Re: Textures Alpha blending problems with Transparent NSOpenGLView
  • Previous by thread: Re: Switching between background <-> foreground app type at run-time
  • Next by thread: Re: setState not working as expected
  • Index(es):
    • Date
    • Thread