• 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: Issuing NSTextField action message
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Issuing NSTextField action message


  • Subject: Re: Issuing NSTextField action message
  • From: Kyle Sluder <email@hidden>
  • Date: Wed, 20 Aug 2014 15:35:44 -0500

On Wed, Aug 20, 2014, at 02:35 PM, Carl Hoefs wrote:
>
> On Aug 20, 2014, at 12:33 PM, Kyle Sluder <email@hidden> wrote:
>
> > On Wed, Aug 20, 2014, at 02:27 PM, Carl Hoefs wrote:
> >> I do have -controlTextDidChange: set up, and it does get invoked on every
> >> keystroke typed into the textfields, but how do I then cause the
> >> textfield’s action method to be issued?
> >> -Carl
> >
> > You don't. You're already getting notified at the right time; just call
> > the right method yourself.
> >
> Which method? I have a KVO setup that does everything already, but it
> requires the Action be sent by the textfield. How can I do that from
> within -controlTextDidChange:? Otherwise nothing happens until a Return
> is pressed.

First, you need to stop using KVO for this. As I said before,
NSTextField is not documented to be KVO complaint for any of its
properties, so you cannot observe it.

To use -controlTextDidChange:, you would have to move your core logic
that updates the other text fields out to a common place that can be
called by both -controlTextDidChange: and your text field action. Your
implementation of -controlTextDidChange: would have to grab the text
field's formatter and attempt a string-to-number conversion, calling
your core logic method with the results.

But rather than doing that, Cocoa Bindings actually does what you want.
(And the fact it usually—but not always!—uses KVO under the hood is
probably why you've been getting away with KVO-observing your text
fields.)

Bind your text fields' Value binding to various NSNumber properties on
your controller. Turn on Updates Value Continuously for all of these
bindings. (I just confirmed that this works, unlike the isContinuous
property on NSTextField itself.) Make sure your setters do the proper
KVO-compliant updates for the other properties, either through
+keyPathsForValuesAffecting… or by manual KVO notification.

--Kyle Sluder

_______________________________________________

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: Issuing NSTextField action message
      • From: email@hidden
    • Re: Issuing NSTextField action message
      • From: Kyle Sluder <email@hidden>
References: 
 >Issuing NSTextField action message (From: Carl Hoefs <email@hidden>)
 >Re: Issuing NSTextField action message (From: Ken Thomases <email@hidden>)
 >Re: Issuing NSTextField action message (From: Carl Hoefs <email@hidden>)
 >Re: Issuing NSTextField action message (From: Kyle Sluder <email@hidden>)
 >Re: Issuing NSTextField action message (From: Carl Hoefs <email@hidden>)
 >Re: Issuing NSTextField action message (From: Kyle Sluder <email@hidden>)
 >Re: Issuing NSTextField action message (From: Carl Hoefs <email@hidden>)
 >Re: Issuing NSTextField action message (From: Kyle Sluder <email@hidden>)
 >Re: Issuing NSTextField action message (From: Carl Hoefs <email@hidden>)

  • Prev by Date: Good way to have default relationship to override nil?
  • Next by Date: Re: Issuing NSTextField action message
  • Previous by thread: Re: Issuing NSTextField action message
  • Next by thread: Re: Issuing NSTextField action message
  • Index(es):
    • Date
    • Thread