Mac Catalyst

Create a version of your iPad app that users can run on a Mac device.

Overview

With Mac Catalyst, you can make a Mac version of your iPad app. Click the Mac checkbox in your iPad app’s project settings to configure the project to build both Mac and iPad versions of your app.

A screenshot of Xcode highlighting the Mac checkbox in the General project settings for an iPad app.

The two apps share the same project and source code, making it easy to change your code in one place.

For information about designing a Mac version of your iPad app, see Mac Catalyst in the Human Interface Guidelines.

Topics

Essentials

Creating a Mac Version of Your iPad App

Bring your iPad app to macOS with Mac Catalyst.

App Support

Optimizing Your iPad App for Mac

Make your iPad app more like a Mac app by taking advantage of system features in macOS.

Replacing the Mac Bundle ID Provided by Xcode

Use an existing Mac bundle identifier instead of the generated ID to identify your Mac app built with Mac Catalyst.

User Interface

UIKit Catalog: Creating and Customizing Views and Controls

Customize the user interface of your iOS and Mac Catalyst apps by using views and controls in UIKit.

Toolbar

Provide a space for controls under a window's title bar and above your custom content.

Touch Bar

Display interactive content and controls in the Touch Bar.

User Interactions

Adding Menus and Shortcuts to the Menu Bar and User Interface

Provide quick access to useful actions by adding menus and keyboard shortcuts to your Mac Catalyst app.

class UIHoverGestureRecognizer

A gesture recognizer that looks for pointer movement over a view.

User Preferences

Displaying a Preferences Window

Provide a Preferences window in your Mac app built with Mac Catalyst so users can manage app preferences defined in a Settings bundle.

Detecting Changes in the Preferences Window

Listen for and respond to a user’s preference changes in your Mac app built with Mac Catalyst using key-value observing.

See Also

App Structure

App and Environment

Manage life-cycle events and your app’s UI scenes, and get information about traits and the environment in which your app runs.

Documents, Data, and Pasteboard

Organize your app's data and share that data on the pasteboard.

Resource Management

Manage the images, strings, storyboards, and nib files that you use to implement your app's interface.

App Extensions

Extend your app's basic functionality to other parts of the system.

Inter-Process Communication

Share data through Handoff, support universal links into your app's content, and display activity-based services to the user.