"+[CATransaction synchronize] called within transaction" with NSOpenPanel

I'm getting these log messages:

+[CATransaction synchronize] called within transaction

whenever I spawn or resize and NSOpenPanel (or save panel).

To investigate, I created the simplest possible test app, with no window and only this method that I override in AppDelegate.m:


- (void)applicationDidFinishLaunching:(NSNotification *)aNotification {

	NSOpenPanel *panel = NSOpenPanel.openPanel;
	panel.allowedFileTypes = @[@"public.plain-text"];
	[panel beginWithCompletionHandler:^(NSModalResponse result) {

	}];

}

This is basically all the code I added. And this still triggers the warning message above. The message is also posted whenever I resize the panel.

I wasn't getting these messages before updating to Ventura.

What am I doing wrong?

You are not doing anything wrong. That's an issue of NSOpenPanel and there nothing you need to do, it's up to Apple to fix that.

Plagues every language that uses the Tk ecosystem. ☹️

I no longer see these log messages after updating to Xcode 15 / macOS 13.6.

"+[CATransaction synchronize] called within transaction" with NSOpenPanel
 
 
Q