Tuesday, July 31, 2018

Rethinking the macOS Font Picker

Sam William Smith (via Matt Birchler):

The font picker is one of the most commonly used drop down menus in any creative application. Despite this, the default font picker on macOS has remained largely unchanged since the early days.

His example is from Keynote, one of the many apps that has implemented its own font picker because NSFontPanel can be kind of clunky. Cocoa should provide more built-in ways to pick fonts.

3 Comments RSS · Twitter


Well you can type out a number of leading letters of that font name to jump to the font you want (instead of only jump to the first font with a matching beginning letter).

I believe this is one of the major ways I (and many other people I know) interact with the picker.


The same problem applies to the method-navigation in Xcode. A Popup may cut it for a hand full of methods but then all methods would fit on the screen, too.

The same problem applies to trees, too. Once the tree gets too big, there's too much scrolling involved. When the tree gets too deep, you not only scroll up and down, you also scroll left/right. macOS 10 solved the problem for Finder with the Browse-View. But once the hierarchies get too deep even that doesn't cut it anymore.

The worst example of a tree in Xcode is probably the symbol navigator. Typical method names in Objective-C (and Swift for that matter) are long and verbose, so as long as tree is not super wide, plenty of information is lost.


> The same problem applies to the method-navigation in Xcode.

You may not be aware that you can use the keyboard to narrow the methods listed in this menu. Click on the menu to bring it up, then two or three keystrokes usually narrows this to a handful of methods, then you can click on the one you want or use the arrow keys to pick a method. It's very handy. It doesn't have to be the first two letters in the method name, it appears it uses an algorithm similar to Open Quickly.

I like Sam Smith's idea -- I was disappointed to see that it was just a concept and there was no code. It would be great if Apple did this.

Leave a Comment