• 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: Trigger nextkeyview based on NSTextField input length
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Trigger nextkeyview based on NSTextField input length


  • Subject: Re: Trigger nextkeyview based on NSTextField input length
  • From: Kyle Sluder <email@hidden>
  • Date: Fri, 17 May 2013 20:03:57 -0700

On May 17, 2013, at 7:02 PM, Jaime Magiera <email@hidden> wrote:

> Hello folks,
>
> I'm writing a license key input window. The license key is broken into four parts, separated by "-". I've created four NSTextFields for each component of the key to aid typing and identification (e.g. NSTextField1 - NSTextField2 - NSTextField3 - NSTextField4 ). The textfields utilize a NSFormatter subclass.
>
> What is the most appropriate way to trigger nextkeyview after x number of characters in the textfields? I'd like for the user to get forwarded to the next textfield after typing the appropriate number of characters in the current textfield. This is a common practice in license key windows.
>
> Should I put it [[inputField window ] selectNextKeyView:self] in the formatter subclass? Do it in the window controller?

The easiest approach following this design would be to sign the window controller up as the delegate for all the text fields and implement -controlTextDidChange: to make the next field first responder.

But consider the following:

- Replacing a character in the middle of a field shouldn't cause the cursor to advance to the next one just because the field has the right number of characters in it.

- You have to implement special logic for copy and paste. (If you break pasting a license code into your license panel, your users will hate you.)

- What happens when you delete all the characters in a field? Or position yourself at the front of a full field and hit Delete?

So rather than the four-field approach, why not use _one_ text field with an NSFormatter subclass that adds and removes the dashes in the license code? Then you get all the text handling behavior users expect for free.

--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: Trigger nextkeyview based on NSTextField input length
      • From: Jaime Magiera <email@hidden>
References: 
 >Trigger nextkeyview based on NSTextField input length (From: Jaime Magiera <email@hidden>)

  • Prev by Date: Trigger nextkeyview based on NSTextField input length
  • Next by Date: Re: Trigger nextkeyview based on NSTextField input length
  • Previous by thread: Trigger nextkeyview based on NSTextField input length
  • Next by thread: Re: Trigger nextkeyview based on NSTextField input length
  • Index(es):
    • Date
    • Thread