gpt4 book ai didi

cocoa - 如何检测 NSView 或其父 NSWindow 的事件外观?

转载 作者:行者123 更新时间:2023-12-03 16:09:37 26 4
gpt4 key购买 nike

当其父窗口处于事件或非事件状态时,所有 native 控件都有不同的外观。我们应该如何在自定义组件中检查此状态,例如渲染按钮单元时?

我们可以检查 controlView.window 的属性,例如 isMainWindowisKeyWindow,但它们并不能涵盖所有情况。例如,如果您在桌面上打开应用程序的一个窗口,在全屏空间中打开另一个窗口,则根据公共(public) API,只有其中一个窗口可以是 key 或 main。然而,标准控件似乎使它们在两个空间中都处于事件状态:

请注意两个 Safari 窗口中的工具栏按钮如何呈现为事件状态。我们如何实现相同的行为?

最佳答案

幸运的是,SwiftUI 允许从环境继承一个新的魔法属性:

/// Window state.
@Environment(\.controlActiveState)
var windowState: ControlActiveState

这是官方的解决方案。干杯!

关于cocoa - 如何检测 NSView 或其父 NSWindow 的事件外观?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58216792/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com