Skip to content

Crash on macOS Tahoe 26.6: MiddleAlignedCell receives _visualProviderIfExists #74

Description

@ShunRao010

## Environment

  • macOS: Tahoe 26.6
  • Hardware: Apple Silicon (M4 Pro)
  • WinDiskWriter: current source from main
  • Xcode: Xcode 26.x

## Problem

WinDiskWriter crashes immediately on launch on macOS Tahoe 26.6.

Launching the executable directly from Terminal produces:

*** Terminating app due to uncaught exception 'NSInvalidArgumentException',
reason: '-[MiddleAlignedCell _visualProviderIfExists]:
unrecognized selector sent to instance ...'

libc++abi: terminating due to uncaught exception of type NSException

I also see this runtime warning:
_objc: Class DiskManager is implemented in both
/System/Library/PrivateFrameworks/ProDisplayLibrary.framework/...
and
WinDiskWriter.app/..._
The DiskManager warning may be unrelated to the actual crash.

**Investigation**

MiddleAlignedCell is currently declared as:
_@interface MiddleAlignedCell : NSCell_
It is then used as the cell of an NSTextField.

On macOS Tahoe, AppKit appears to send the private selector:
__visualProviderIfExists_
to the cell object, which causes the crash because the custom NSCell subclass does not respond to it.

**Minimal workaround / potential fix**
I changed:
_@interface MiddleAlignedCell : NSCell_
to:
_@interface MiddleAlignedCell : NSTextFieldCell_
No other source changes were required.

**Verification**
After this one-line change:

* the project builds successfully with Xcode 26.x;
* WinDiskWriter launches successfully on macOS Tahoe 26.6;
* I successfully used the rebuilt application to create a Windows 11 installation USB;
* the USB successfully booted into Windows Setup.

This therefore appears to be an AppKit compatibility issue involving the custom NSCell subclass on macOS Tahoe.

I have only tested the change on an M4 Pro running macOS Tahoe 26.6, so regression testing on older macOS versions would still be useful.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions