Thanks for the thoughtful post, we really appreciate it. Looking into the issue lead us to an interesting discussion of how the different platforms handle it existing search text when the user’s focus returns to the Search field, the system standard behaviors, and the trade-offs involved.
In Codebook for macOS the Search field is a component of the AppKit development library. There we can see the behavior you’re advocating for at its best. The user can right-arrow (or mouse click to the right) to dismiss the selection and refine the search, or simply start entering a new search term on the keyboard to eliminate the selection.
On iOS, where the interface (including the keyboard) is all based on touching the screen with your fingers, and real estate is limited, the utility of doing the above bumps up against other concerns, like returning from a search result that wasn’t quite what one wanted to refine one’s search. In building the Search interface for UIKit (the library that provides the UI on iOS), Apple made the intentional decision to roll with the cancel button instead, that’s the x in a circle you see in the search field when there’s already search text present. They felt it’s a better experience to offer a quick dismissal button of existing text than the alternative, as you pointed out:
If I want to modify my previous search, I can still do that fairly easil, by tap-and-hold on the search field to position the cursor where I want to make the modification.
We agree with the Apple approach, ostensibly, that this is less than ideal and would occur a lot more often than I think people realize. In addition, it’s quite a standard behavior that users have come to expect on iOS, we’d be changing a core experience in a big way.
So, to sum up, we’ve decided to stick with the current behavior on iOS, but we really appreciate you taking the time to lay out why you’d think that would be a better approach.
Quick question: do you use Codebook on iPad as well as iPhone? If you do, do you use it with an external hardware keyboard (e.g. the smart touch cover)?