Back in 1985 we started to write estimating and accounting software in Lotus 1-2-3 on a Tandy 1000, and then in MS Excel on a Mac Plus. It first sold in 1987 as MacNail 1.0.
At the beginning, the spreadsheets had vendors, cost categories and jobs as plain text fields. Unfortunately, reports would show Smith and Snith as separate jobs if you made a typo. Even worse, an extra space character also split it into a different job, even though it looked identical on the screen. OK for perfect typists, but not for humans.
We switched to number codes, but that was hard to remember. So we added “lookups” that showed the name next to the number. Better, but you still had to memorize hundreds of numbers, or use a cheat sheet, or guess a lot. The lookup formulas were also very fragile.
Back then, Bruce Tognazzini was the “interface guru” for Apple. He wrote about a hypothetical disambiguating field, designed to choose items from a list by typing the first few letters. It also had a popup button so you could enter data with the mouse. The setup sounded ideal for accounting data. There was nothing at all like that in Excel, which was one reason why we decided to develop Goldenseal as a stand-alone accounting app.
Apple never added the disambiguating field to its standard controls, so we wrote one from scratch. Disambiguating seemed too odd a term, so we called them clairvoyant fields.
When we started the Cocoa update this year, we were excited to see a class called NSComboBox. It looks like a disambiguating field, with text and a popup button. Unfortunately, when we tried using it, it turned out to be just the opposite. For accounting, everything needs to go into a specific vendor account, job and cost category. It’s nice to have an easy way to add new accounts, but you do not want to create a new account every time you make a typo. Unfortunately, the combo box gives suggestions, but is happy to accept whatever you type. We tried hacking it, but it is just not meant to have other behavior.
So, we are now in the middle of redoing clairvoyant fields to work with Cocoa native controls. It will be a text field next to a popup button, just like before. Type a few letters and it shows a list.
Clairvoyant fields sound too complicated, so they’ll become smart fields.
It will take some experimenting to come up with a new look for them. Probably a gray border? It needs to look good on Mac, Windows, Android and iOS.
As a boon to data entry, popup fields will also become smart fields. That way, you can do all data entry from the keyboard, and never touch the mouse. It will be a Preferences option, so you can keep the original popup appearance, if you prefer.