Re: NSComboBox
Re: NSComboBox
- Subject: Re: NSComboBox
- From: Clark Cox <email@hidden>
- Date: Fri, 27 Jul 2018 10:23:17 -0700
In UIs like this that I have made in the past I use a popover or a custom
pop-up. I.e. something like:
+----------------+
| Field |
+--------+-------+
^
+-------------------+-------------------+
| Filter Field |
+---------------------------------------+
| |
| Item 1 |
| Item 2 |
| Item 3 |
| ... |
| Item n |
| |
+---------------------------------------+
- The user tabs-into (or clicks) the field, and a popover is displayed, and the
filter field is made first responder.
- As the user types (into the now active filter field), the table below it is
filtered down to matching items
- The user can then either click on the appropriate option, or if there is only
one, just hit enter
You can see a similar UI if, in Xcode, you click the navigation pop up at the
top of a source file and start typing.
> On Jul 25, 2018, at 17:50, Casey McDermott <email@hidden> wrote:
>
>>> Or does the user need to scan the list of near-matches for some reason?
>
> Yes, exactly. When you have 20K customer records, you don't remember how
> each was entered, or how spelled. You may need to type a letter or 2 and then
> scroll the list. It may take a few tries: Smith Company? Smyth Company?
> The Smith Company? Josephine Smith & Co?
>
> Our customer database has dozens of duplicate names, so they might be entered
> as
> Smith Company NY and Smith Company CA.
>
> Sometimes one has no idea what's in the list, so it really helps to be able
> to scroll.
> A popup is probably better for that, but not when in hands-on-keyboard mode.
>
> NSComboBox is so close. That one sentence in the docs is so tantalizing!
>
> Thanks,
>
> Casey McDermott
>
> Turtle Creek Software
> http://www.turtlesoft.com
> 607 220-4514
>
> --------------------------------------------
> On Wed, 7/25/18, Quincey Morris <email@hidden> wrote:
>
> Subject: Re: NSComboBox
> To: "Casey McDermott" <email@hidden>
> Cc: "Cocoa-Dev List" <email@hidden>
> Date: Wednesday, July 25, 2018, 7:55 PM
>
> On Jul 25, 2018, at 15:40 , Casey
> McDermott <email@hidden>
> wrote:
>>
>> I forgot to mention
> that the lists may contain 10,000s of items. Maybe 100,000s.
>
>> Typing to select from NSPopUpButton
> works OK for short lists. I just made a test
>> popup with 300 items and it's already
> awkward. 10K would be absurd.
>>
>> These are business records, and users may
> data enter hundreds a day. They want
>>
> to tab, type a few letters to select a customer, tab to the
> next field, type a bit to
>> select an
> inventory item, etc. Type a customer that doesn't
> exist and it should beep
>> and ignore
> the keystrokes. If they need to enter a new customer,
> it's a right-click,
>> then a panel
> to enter more than just the name.
>>
>> Our current interface does use popup
> buttons for some things, but people complain
>> about them. They don't want to take
> hands off keyboard. We plan to convert those
>> to combo boxes so it can be completely
> mouseless.
>
> If
> that’s your use case, there’s something else gong on at
> the heart of this.
>
> What
> value — if there are tens of thousands of items — is
> there in popping anything up at all, whether it’s a
> combo-box-style popup or a menu-style popup? It seems that
> you should just validate the text field every stroke, and
> provide the rest of the field as soon as what is typed
> becomes unique. Or does the user need to scan the list of
> near-matches for some reason?
>
> Another approach to this might be to be
> something like autocomplete, but where you don’t start
> offering autocompletions until enough text has been entered
> to limit the possibilities to a manageable number of
> choices. Text fields have built-in support for autocomplete,
> although IIRC it gets a bit harder if the completions are
> context sensitive — if typing more characters changes the
> list of possibilities, rather than just limiting it.
> (Xcode’s autocompletions are content sensitive in this
> sense, but Xcode has its own implementation unrelated to
> NSTextField’s.)
>
> Or, use a
> table view next to the text field, and programmatically
> scroll to the area of the list that matches what the user
> has typed so far. NSTableView is essentially optimized for
> displaying small fragments of huge lists, so it might be
> better than trying to stuff all those entries in a combo
> box.
>
>
> _______________________________________________
>
> 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
--
Clark Smith Cox III
email@hidden
_______________________________________________
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