Mac Catalyst

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


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. 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.



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.

User Interface

UIKit Catalog: Creating and Customizing Views and Controls

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

Removing the Title Bar in Your Mac App Built with Mac Catalyst

Display content that fills the entire height of a window by removing the title bar.


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 app built with Mac Catalyst.


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 Combine.

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.