Post

Replies

Boosts

Views

Created

STextField becomes blurry after layer transform on macOS 26 (Tahoe)
Hi everyone, After upgrading to macOS 26 (Tahoe) I’ve run into an issue: NSTextField becomes noticeably blurry when its parent layer is transformed (CATransform3D or CGAffineTransform). On macOS 15 (Sequoia) the exact same code worked fine — text stayed sharp. Interestingly, an NSImage backed by a PDF representation transforms without any problem and remains perfectly crisp, but labels do not. What I’ve tried so far Checked the contentsScale of the layers Setting magnificationFilter = .nearest Toggled shouldRasterize on/off and adjusted rasterizationScale Have there been any Core Animation or AppKit changes in macOS 26 that affect text rendering when transforming layers? What’s the recommended way now to keep NSTextField text sharp (similar to how vector PDF images behave) when scaling its parent layer? Any insights, best practices, or workarounds would be greatly appreciated. Thanks in advance!
1
0
216
Sep ’25
STextField becomes blurry after layer transform on macOS 26 (Tahoe)
Hi everyone, After upgrading to macOS 26 (Tahoe) I’ve run into an issue: NSTextField becomes noticeably blurry when its parent layer is transformed (CATransform3D or CGAffineTransform). On macOS 15 (Sequoia) the exact same code worked fine — text stayed sharp. Interestingly, an NSImage backed by a PDF representation transforms without any problem and remains perfectly crisp, but labels do not. What I’ve tried so far Checked the contentsScale of the layers Setting magnificationFilter = .nearest Toggled shouldRasterize on/off and adjusted rasterizationScale Have there been any Core Animation or AppKit changes in macOS 26 that affect text rendering when transforming layers? What’s the recommended way now to keep NSTextField text sharp (similar to how vector PDF images behave) when scaling its parent layer? Any insights, best practices, or workarounds would be greatly appreciated. Thanks in advance!
Replies
1
Boosts
0
Views
216
Activity
Sep ’25