Vad*_*dim 6 cocoa nsview appkit nswindow nscell
当其父窗口处于活动状态或非活动状态时,所有本机控件的外观都不同。我们应该如何在自定义组件中检查此状态,例如在渲染按钮单元时?
我们可以检查和controlView.window的属性,但它们不能涵盖所有情况。例如,如果您在桌面上打开应用程序的一个窗口,而在全屏空间中打开另一个窗口,则根据公共API,其中只有一个可以是键或主键。但是,标准控件似乎使它们在两个空间中均处于活动状态:isMainWindowisKeyWindow

请注意,两个Safari窗口中的工具栏按钮如何呈现为活动状态。我们如何实现相同的行为?
幸运的是,SwiftUI 允许从环境继承一个新的神奇属性:
/// Window state.
@Environment(\.controlActiveState)
var windowState: ControlActiveState
Run Code Online (Sandbox Code Playgroud)
这是官方的解决方案。干杯!
| 归档时间: |
|
| 查看次数: |
159 次 |
| 最近记录: |