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 <supp...@turtlesoft.com> 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 <quinceymor...@rivergatesoftware.com> wrote: > > Subject: Re: NSComboBox > To: "Casey McDermott" <supp...@turtlesoft.com> > Cc: "Cocoa-Dev List" <cocoa-dev@lists.apple.com> > Date: Wednesday, July 25, 2018, 7:55 PM > > On Jul 25, 2018, at 15:40 , Casey > McDermott <supp...@turtlesoft.com> > 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 (Cocoa-dev@lists.apple.com) > > 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: > https://lists.apple.com/mailman/options/cocoa-dev/clarkcox3%40gmail.com > > This email sent to clarkc...@gmail.com -- Clark Smith Cox III clarkc...@gmail.com _______________________________________________ Cocoa-dev mailing list (Cocoa-dev@lists.apple.com) 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: https://lists.apple.com/mailman/options/cocoa-dev/archive%40mail-archive.com This email sent to arch...@mail-archive.com