Archive for June 18, 2026

Thursday, June 18, 2026

macOS Touch

Dan Moren:

Second only in speculation to the folding iPhone might be the reported MacBook Pro that will be Apple’s first Mac with a touchscreen.

[…]

A preponderance of drawing related features are specifically making their way to the Mac, including both in Notes and in Freeform. Those features have existed on Apple’s touch-first platforms for some time, but this is their first jump to the Mac. While nominally this will work with your trackpad or even using an iPad as input, it’s not hard to imagine a future where you might be able to draw right on your Mac’s screen.

Joe Rossignol:

“MacBook Ultra” is the rumored name for a new high-end model above the MacBook Pro. The laptop is rumored to feature an OLED display, touch-screen capabilities, a Dynamic Island, a thinner design, and M6 Pro and M6 Max chips.

macOS 27 includes a trio of hints about touch-screen support and a Dynamic Island in particular.

Hartley Charlton:

macOS 27 Golden Gate adds pull-to-refresh support to the Mac, adopting one of iPhone and iPad's most familiar gestures for the first time.

Hartley Charlton:

Apple has added direct touch input to Sidecar with macOS 27 Golden Gate and iPadOS 27, allowing users to tap and interact with macOS interface elements using a finger on their iPad for the first time.

Steve Troughton-Smith:

Unsurprisingly, UIKit-based iOS and Catalyst apps seem to handle touchscreen macOS better than AppKit apps, with all the little touches like swipe-to-go-back that you might expect.

David Price:

In a post to Weibo on Thursday, the leaker known as Instant Digital made a characteristically terse comment on the upcoming product. “It’s 100% confirmed that the MacBook screen will be touch-enabled,” they wrote (translated from the original Chinese using Google Translate).

Craig Grannell:

A touchscreen MacBook Ultra would face a similar challenge [as the Touch Bar]. It would launch as a niche, expensive device in a sea of non-touchscreen Macs. Developers would need to bet Apple was committed to rapidly rolling touchscreens out across its entire laptop line to justify their investment.

I don’t expect a touch screen to need as much developer buy-in as the Touch Bar.

The only way a MacBook Ultra makes sense to me is if it zips past that period of compromise. Which means a screen that detaches and effectively becomes an iPad, so you get a great laptop and a great touchscreen device. That sounds a lot like an iPad running macOS or, for that matter, a Microsoft Surface or any number of Windows hybrid laptops.

Steve Troughton-Smith:

NSMenuUseGlassWindowStyle

NSMenuEnableGestureTracking

macOS and iPadOS are moving closer together every day 🙃 Presume this will be enabled for the upcoming touchscreen MacBooks

Previously:

AppKit in macOS 27

macOS Golden Gate 27 Beta Release Notes:

AppKit adds NSRefreshController, providing pull-to-refresh functionality for NSScrollView.

[…]

NSToolbarItemGroup adds the role property and the NSToolbarItemGroupRole enum, allowing toolbar item groups to be tagged with a semantic role. NSSegmentedControl similarly adds a role property and the NSSegmentedControlRole enum, including a tabs role for controls that represent tab-based navigation and content selection.

[…]

NSTextSelectionManager provides common text selection interactions (click, drag, shift-click, double/triple-click word/line/paragraph selection) to a NSView with a set of NSGestureRecognizers rather than overriding NSEvent mouse methods. NSTextView now uses NSTextSelectionManager and provides its own set of NSGestureRecognizers to provide additional features in addition to text selection.

[…]

By default, NSMenu hides all menu item symbol images — non-symbol images remain visible. […] Use the new preferredImageVisibility property on NSMenuItem to customize the image visibility for your menu items. As in macOS 26.0, NSMenu automatically provides default visible menu item images for certain common system-wide menu items, such as Settings, Share, and Print.

AppKit updates:

Create events similar to UIControl events on NSControl with the new NSControl.Events type.

[…]

Initiate a drag operation from a gesture recognizer using the new beginDraggingSession(items:gesture:source:) method on NSView.

[…]

Update views automatically in response to Observable model changes using the guidance in Updating views automatically with observation tracking.

How is this different from what was announced last year?

Modernize your AppKit app:

Bring your AppKit app up to date with modern macOS conventions. Dive into handling input with control events and gesture recognizers, moving beyond traditional tracking loops. Enhance keyboard navigation in your app, implement graceful state restoration after restarts, and take advantage of new corner concentricity APIs that let your interface blend seamlessly with the macOS aesthetic.

Steve Troughton-Smith:

To summarize the singular AppKit session this year: hey remember all these APIs and design patterns from UIKit? Well they’re now in AppKit and you should use them! Also make your glass use interactive bounce effects.

Why? No reason!😉

TN3212:

In macOS 27, AppKit continues to standardize on gesture recognizers as the primary mechanism for input handling. This change directly affects Sidecar because gesture recognizers are the only way to respond to touch input from a Sidecar-connected iPad running iPadOS 27. If your app relies on tracking loops for mouse event handling, migrate to gesture recognizers to support Sidecar touch input.

This article explains how the gesture recognizer model works, how to implement gesture recognizers correctly for Sidecar touch input, how to update your existing event-handling code, and which APIs macOS 27 adds. Codebases that implement nextEvent(matching:) or mouseDown(with:), mouseDragged(with:), and mouseUp(with:) events are most affected by the updates discussed.

Greg Pierce:

After the AppKit session blindsided me a bit after telling me not to override mouseDown, and then telling me I should override hitTest

Mario Guzmán:

A few years ago, Apple introduced:

func tableView(_ tableView: NSTableView, userCanChangeVisibilityOf column: NSTableColumn) -> Bool

for NSTableView, which Is a native way users could control-click on a TableView column to show/hide columns.

This year, in #macOS27, they updated it to have a new “Reset to Defaults” option.

This is awesome bc I have done my own implementation of this feature JUST to have the option to “reset all columns” and now Apple just includes it!

Elevate your app’s text experience with TextKit:

Discover how to combine the convenience of built-in text views with the control of TextKit. We’ll show you how new APIs make it easy to extend UITextView and NSTextView with custom behaviors like line numbers and collapsible sections. We’ll also explore the TextKit architecture and walk through new caching and reuse policies for text attachments.

Previously:

UIKit in iOS 27

iOS & iPadOS 27 Beta Release Notes:

[You] can use UIScene.extendStateRestoration and UIScene.completeStateRestoration to extend state restoration for UIScene.ActivationState.background to UIScene.ActivationState.foreground lifecycle transitions.

[…]

iOS and iPadOS apps built with the 27.0 SDK or later are required to include a launch screen.

[…]

Siri can load resources from drag interactions installed in your app’s interface.

[…]

In apps built with the iOS 27.0 SDK, a presented view controller inherits its trait collection by walking up its view’s superview chain through the intermediate views of the presentation, rather than jumping directly to the presentation controller.

UIKit updates:

Use UICollectionViewCompositionalLayoutSectionProvider closures as part of automatic observation tracking to automatically invalidate and update compositional layouts when observable objects change.

[…]

Use UIRefreshControl and UIStepper in Mac apps built with Mac Catalyst. These controls are now fully supported in the Mac idiom.

[…]

Starting in iOS 27, apps built with the latest SDK must use the scene-based life cycle or they fail to launch.

[…]

Use NSTextTable, NSTextBlock, and NSTextTableBlock to represent table structures in attributed strings.

Modernize your UIKit app:

Discover the latest updates to UIKit. Learn how to update your iPhone app layouts to work great when resized with iPhone Mirroring and on iPad. Explore new APIs for tab and navigation bars, find out how to prepare your app for new Apple Intelligence capabilities, and get introduced to a skill for your coding agent of choice that helps modernize your codebase.

Kyle Howells:

iOS 27's UIKit is a tiny release in terms of API changes, but does have some changes. There are no new top-level paradigms, but there’s an new addition to TextKit 2, a new scene accessory API, Liquid-Glass-era bar minimization controls, and a small amount of quality-of-life additions to menus, tab bars, and drag interactions.

Hartley Charlton:

Apple appears to be laying the groundwork for a foldable iPhone in iOS 27, with new references discovered in the operating system’s frameworks and a notable emphasis on flexible app layouts at this year’s Platforms State of the Union.

Jordan Morgan:

The nav bar and its friends got quite a bit of attention, and to be honest that’s where we will find most of the changes. They adapt to all sorts of sizes and situations…hmmm, I WONDER WHY!?

[…]

A few years ago, I wondered if UIKit would be deprecated altogether. That would’ve been drastic, sure, but I did wonder. These days, I don’t share the same concern anymore. SwiftUI gets better each year, and yeah — it’ll have top billing. But UIKit is solid, and it appears to be a core part of Apple’s strategy into the future.

Not much changed this year, and not much was added that’s flashy. But, that’s true of iOS 27 in several ways.

Previously:

Core AI Announced

Meet Core AI:

Discover Core AI, Apple’s new framework for on-device AI model deployment. Tour the ecosystem, from Python libraries for converting, authoring, and optimizing models, to a Swift API for simple plug-and-play inference and advanced use cases with strict latency and memory requirements. Explore the new Core AI models repository with ready-to-run examples for popular architectures. See how deep Xcode integration, including ahead-of-time model compilation, streamlines the workflow so you can deliver smarter, more responsive app experiences.

Dive into Core AI model authoring and optimization:

Dive into the complete custom model deployment workflow for Apple silicon with the new Core AI framework. Discover powerful techniques for authoring models using custom Metal kernels, alongside platform-aware compression strategies. The new Core AI Debugger offers deep intrinsic analysis, and AI-assisted workflows guide you from initial concept to optimized on-device execution.

Integrate on-device AI models into your app using Core AI:

Discover a curated collection of popular open-source models — including Qwen, Mistral, SAM3, and more — optimized for Apple silicon using the new Core AI Framework. Learn how to download, run, and benchmark models on your Mac, and integrate them into your app with just a few lines of code. Explore a new workflow for model compilation and on-device specialization to speed up first-time model load. Find out how to profile and optimize runtime performance with Core AI tools in Xcode.

Core AI Documentation (Hacker News):

Core AI helps you build, run, and deploy AI models in your app. Designed with Apple silicon in mind, Core AI allows your app to use the latest model architectures and inference techniques across the CPU, GPU, and Neural Engine. The Swift API makes common tasks simple, while giving you more control over model specialization, caching, and inference performance when needed.

Previously: