[go: up one dir, main page]

PHPickerViewController unusable via Mac Catalyst on macOS 26 when interface is "Scaled to Match iPad"

There is a serious usability issue with PHPickerViewController in a UIKit app running on macOS 26 via Mac Catalyst when the Mac Catalyst interface is set to “Scaled to Match iPad”. Mouse click and other pointer interactions do not take place in the correct position. This means you have to click in the wrong position to select a photo and to close the picker. This basically makes it unusable.

To demonstrate, use Xcode 26 on macOS 26 to create a new iOS app project based on Swift/Storyboard. Then update ViewController.swift with the following code:

import UIKit
import PhotosUI

class ViewController: UIViewController {
    override func viewDidLoad() {
        super.viewDidLoad()

        var cfg = UIButton.Configuration.plain()
        cfg.title = "Photo Picker"
        let button = UIButton(configuration: cfg, primaryAction: UIAction(handler: { _ in
            self.showPicker()
        }))
        button.translatesAutoresizingMaskIntoConstraints = false
        view.addSubview(button)
        NSLayoutConstraint.activate([
            button.centerXAnchor.constraint(equalTo: view.safeAreaLayoutGuide.centerXAnchor),
            button.centerYAnchor.constraint(equalTo: view.safeAreaLayoutGuide.centerYAnchor),
        ])
    }

    private func showPicker() {
        var config = PHPickerConfiguration()
        config.selectionLimit = 10
        config.selection = .ordered
        let vc = PHPickerViewController(configuration: config)
        vc.delegate = self

        self.present(vc, animated: true)
    }
}

extension ViewController: PHPickerViewControllerDelegate {
    func picker(_ picker: PHPickerViewController, didFinishPicking results: [PHPickerResult]) {
        print("Picked \(results.count) photos")

        dismiss(animated: true)
    }
}

Then go to the "Supported Destinations" section of the project target. Add a "Mac (Mac Catalyst)" destination. Then under the "Deployment Information" section, make sure the "Mac Catalyst Interface" setting is "Scaled to Match iPad".

Then build and run the app on a Mac (using the Mac Catalyst destination) with macOS 26.0.1. Make sure the Mac has a dozen or so pictures in the Photo Library to fully demonstrate the issue. When the app is run, a simple screen appears with one button in the middle. Click the button to bring up the PHPickerViewController. Now try to interact with the picker interface. Note that all pointer interactions are in the wrong place on the screen. This makes it nearly impossible to choose the correct photos and close the picker.

Quit the app. Select the project and go to the General tab. In the "Deployment Info" change the “Mac Catalyst Interface” setting to “Optimize for Mac” and run the app again. Now the photo picker works just fine.

If you run the app on a Mac running macOS 15 then the photo picker works just fine with either “Mac Catalyst Interface” setting.

The problem only happens under macOS 26.0 (I do not have macOS 26.1 beta to test) when the “Mac Catalyst Interface” setting is set to “Scaled to Match iPad”. This is critical for my app. I cannot use “Optimize for Mac”. There are far too many issues with that setting (I use UIStepper and UIPickerView to start). So it is critical to the usability of my app under macOS 26 that this issue be resolved.

It is expected that PHPickerViewController responds correctly to pointer events on macOS 26 when running a Mac Catalyst app set to “Scaled to Match iPad”.

A version of this has been filed as FB20503207

Several users reported this issue to us yesterday, so we tested it ourselves. We confirmed that there is a problem selecting images in all of our apps running as iPad apps on macOS 26.0.1. We’ve been investigating potential solutions, but unfortunately, we haven’t found one yet.

@vsmedia Be sure that you file a bug report. The more people that let Apple know of this issue, the better chance it will get fixed some day.

Just ran into this problem while working on an unrelated issue - thought I was going mad. Is it possible to “me too” your feedback or must I open one myself?

@pabugeater You need to file your own bug report using the Feedback Assistant app or website.

Feedback FB20527735 submitted.

Does anyone know if this problem still exists under macOS 26.1 beta? I have not had a chance to try out the 26.1 beta yet.

We just tested it. Unfortunately, it hasn't changed. It looks like we'll have to switch to our own photo picker for iPad apps on macOS.

This issue is also affecting existing apps built with Xcode prior to 26 and a base SDK prior to 26 but being run on macOS 26. So clearly it's a framework issue in macOS 26 that is affecting an app no matter how/when it was built. It just needs to be an app using "Scaled to Match iPad".

I really hope Apple gets this resolved in macOS 26.1 (along with half a dozen other critical functionality bugs that I've reported and still are not fixed).

PHPickerViewController unusable via Mac Catalyst on macOS 26 when interface is "Scaled to Match iPad"
 
 
Q