The Touch Bar—located above the keyboard on supported MacBook Pro models—is a Retina display and input device that provides dynamic interface controls for interacting with content on the main screen. These controls offer quick access to system-level and app-specific functionality based on the current context. For example, when the user types text in a document, the Touch Bar might include controls for adjusting the font face and size. When the user views a map, the Touch Bar could give quick, one-tap access to gas stations, lodging, and restaurants near the displayed location. A Touch ID sensor to the right of the Touch Bar allows fingerprint authentication for logging into the computer and approval of App Store and Apple Pay purchases.
By default, the right side of the Touch Bar displays an expandable Control Strip that includes controls for performing system-level tasks such as invoking Siri, adjusting the brightness of the main display, and changing the volume level. Previously, users accessed most of these controls with a top row of physical function keys. You can implement app-specific controls in the app region to the left of the Control Strip. An Esc (Escape) button or other system-provided button may appear to the left of the app region, depending on context.
The Touch Bar is configurable. The user can remove items from the Control Strip or hide it completely, in which case only app controls are displayed. The user can also hide the app region, displaying an expanded Control Strip. Some apps also allow users to add and remove items in the app region.
You define a bar to provide controls relevant to the user’s context. Each such control is an instance of the
NSTouchBarItemclass, sometimes called, simply, an item.
You can provide many bars within your app; macOS frameworks can provide bars as well. For example, an app that uses standard AppKit objects, such as text fields (instances of the
NSTextFieldclass), obtains appropriate bars along with relevant items automatically.
To use the Touch Bar, define bars in objects in your app’s responder chain. At runtime, the system traverses the responder chain to discover, combine, and show bars from your app and from frameworks you link against.
You can configure a bar to support dynamic composition, in which the system shows it in an expanded form that contains items from bars lower in the responder chain. Because of the dynamic composition and placement of items shown on the Touch Bar, always ensure that your bars appear as you expect them to, testing on the versions of macOS that you support.
Because of the physical geometry of the Touch Bar, touch events passed to gesture recognizers have only a meaningful x, or horizontal, component.
“There is no need, and no API, for your app to know whether or not there is a Touch Bar available.“ :-(
Initial thoughts on the NSTouchBar API are that it looks pretty comprehensive, and you can put your own custom views in there.
Oh, wow, this is really neat. Xcode adds a persistent Debugger menu to the control strip - even when in another app.
If anyone is looking for the Touch Bar simulator option in Xcode 8.1 it’s in the Window menu.
PSA: Developing for Touch Bar requires a newer 10.12.1 build. If you already updated to 10.12.1, you can get it at support.apple.com.
I don’t understand how app-specific toolbars are supposed to be this great innovation. Don’t we already have that? In the app UI?
If you asked video editors if they wanted to do delicate edits via a tiny, imprecise touch strip on a laptop keyboard, of course they’d tell you you were nuts.
So this is bad for consumers, but at least they’ll see the Touch Bar as a gimmick on purchase and then ignore it. For pros, it’s actually an insult.
I think music is always a good test of how expressive an interface was. And bringing a DJ app onstage – as Apple did with djay – proves how awful this tiny touch strip is. Watching someone DJ with the top of a keyboard was just embarrassing, doubly so from the company that makes the iPad and as recently as this year’s WWDC showed off its ability to be used by blind people.
Update (2016-10-28): Marc Edwards:
The new Touch Bar, as seen in Pages, Keynote, Numbers, iMovie, GarageBand, Terminal, Xcode and other apps.
Interesting findings by Steve Troughton-Smith: the Touch Bar on the new MacBook Pro appears to be running on a variant of watchOS under the hood, with the T1 SoC handling security (primarily) for Touch ID as well as the bridge between macOS and the Touch Bar (over a USB connection).
The T1 and the way it interacts with the rest of macOS is either a weird kludge or a great example of Apple’s synergy—Apple has essentially embedded a miniature iOS device with custom silicon in these Macs so it wouldn’t have to rebuild Touch ID and Apple Pay from scratch.
Now that the new MacBook Pro’s have Touch ID we can bring that same great [1Password] feeling you are used to on iPhone to your Mac, and it looks pretty darn cool too. Take a look for yourself and see!
Update (2016-10-29): John Gruber:
The Touch Bar is not the answer to “How do we bring touchscreens to the Mac?”, because that question is not actually a problem. The Touch Bar is the answer to “These keyboard F-keys are cryptic and inflexible — what can we replace them with that’s better?” That’s an actual problem.
Pro users may scoff that they don’t need it for the applications they use regularly, but that’s missing the point. The Touch Bar is for the applications or commands that you use less frequently.
Update (2016-10-30): Sash Zats:
More and more Touch Bar makes sense: extending dialog buttons into keyboard area. I’m really curious to try what it feels like IRL.
Update (2016-11-02): Horace Dediu:
This is a leap forward and a big deal. For 32 years the UX model of the Mac has been two-handed typing with one handed gesturing. Now we have the option of two-handed indirect manipulation: one hand on the touchbar and one hand on the touchpad.
I was initially worried that classes would be pretty sparse and I’d have to write a bunch of custom subviews to get anything reasonable to show up on Touch Bar, but to my surprise the API seems pretty well fleshed out.
I get the feeling this was worked on for a number of years and heavily refined, and was used internally by a number of applications. Which of course makes sense, but not something I had expected.
I think Apple intends to push the Touch Bar as as widely as it possibly can. The current MacBook Pro lineup is the most practical computer to debut the feature, but as it becomes possible to bundle it with external keyboards, and on notebook computers at every price point, they will do so.
I find it impossible to believe that Apple would go to all this work, both on the Touch Bar itself, and across the entire range of its own apps and OS features, unless it had a grand vision for the Touch Bar that extends way beyond the internal keyboard of its premium notebook computers.
Update (2016-11-05): Andrew Orlowski:
Last week Apple replaced physical hardware function keys on its new laptops with a touch sensitive OLED strip, the “Touch Bar”. This isn’t an original idea, and it has failed spectacularly when introduced to the market.
Just two years ago Lenovo tried this with its second generation Yoga. Users hated it, and the change wasn’t repeated for 2015.
Several comments derided the Calculator Touch Bar interface as stupid and unnecessary. It may be simple and ‘boring’ but I do believe it is useful. Putting buttons for common math operations right next to the number keys is incredibly convenient.
On a traditional keyboard, the ‘add’ and ‘equals’ characters are on the same key, next to backspace. To sum, you have to press the Shift key and the ‘+=’ key simultaneously. This requires a surprising degree of mental coordination to do when your brain is primarily occupied by typing in a long string of numbers.
Update (2016-11-17): David Owens II:
The only thing I’ve liked about it the Touch Bar so far is the Touch ID integration. That’s been nice. However, if there was a proper 15” model with function keys, I’d return this model tomorrow morning.
Update (2016-11-18): David Owens II:
I’m hopeful that things will get better. Maybe the control strip API support was just not ready yet (it is already a super buggy area. Once you have iTunes or Xcode open, you’ll get an empty icon in the control strip).
When I tried Mail, I caught this Touch Bar menu (which, again, I’m arguing is essentially a mouse-free, gesture-aware context menu)
While I have used the touchbar for little as yet, I am already a ‘fan’ because it is saving me time: every time I am prompted for an administrator password (a lot, when I doing certain things), I just touch the touchbar and my fingerprint instantly takes care of that pesky password dialog.
Touch Bar looks a bit blurry in real life. Notice the purple/green fringes on left/right of white. Bad subpixel AA, or inevitable from OLED?
Update (2017-01-11): Jeff Geerling:
Apple: I implore you, as a long-time Mac user who also invests in the rest of your ecosystem, but needs and uses a Mac daily—focus on delighting your customers, not on making new things for the sake of making new things. The Touch Bar is a faux pas on par with the G4 Cube and the All-in-one G3. Let’s cut it off now and focus instead on features of the MacBook Pro that make it the best ‘Pro’ laptop you can buy.
Stay up-to-date by subscribing to the Comments RSS Feed for this post.