Re: Trigger nextkeyview based on NSTextField input length
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