在Mac应用程序中,我将展示一个包含NSPredicateEditor的工作表:
let predicateEditorSheet = // from storyboard
parentViewController.presentAsSheet(predicateEditorSheet)
在macOS 10.14 Mojave中,这会导致许多UI错误:
- 在暗模式下,NSPredicateEditor内容区域很轻且不可读:
- 在灯光模式下,NSPredicateEditor控件的背景与行/超级视图的背景背景不匹配 . 注意
is
背景和文本字段的背景:
如何在Mojave中修复这些表单呈现的NSPredicateEditor错误?
错误报告:
-
rdar:// 42789149 - NSPredicateEditor在工作表中的暗模式下表现不佳
-
rdar:// 46142171 - 由Sheet呈现的NSPredicateEditor在暗模式下完全被破坏
1 回答
默认情况下,NSPredicateEditor的祖父视图应该是NSScrollView:
如果您为此滚动视图提供clearColor透明背景,则主要的暗模式问题将基本固定 . 如果在“光照模式”下保持此Alpha变化处于活动状态,则谓词编辑器将采用白色背景而不是默认的灰色视图背景 .
As Apple says,在
layout()
或其他一种方法中进行此更改,使您的视图在系统外观更改时有机会自行更新 .Dark Mode NSPredicateEditor仍然会出现一些UI问题,即每个控件的灰色背景帧 .
此修复程序在Omni Show播客上进行了讨论:
https://theomnishow.omnigroup.com/episode/rey-worthington-omnigraffle-engineer https://twitter.com/theomnishow/status/1052630270719868928