Cocoa: 如何正确隐藏NSImageView下方的其他视图?

Cocoa: How to properly hide other views below NSImageView?

我有一个包含多个子视图(NSButton、NSTextField、NSPopUpButton)的视图和一个带有微调器图标的 NSImageView,当从 Web 检索数据时,它应该显示在其他视图的顶部。

要在顶部显示 NSImageView,我已设置

imageViewSpinner.wantsLayer = true
imageViewSpinner.layer?.backgroundColor = NSColor.windowBackgroundColor.cgColor

问题是,焦点边框和 PopUpButtons 仍然 accessible/shining 通过 NSImageView(见附件视频)。

为了解决这个问题,我可以遍历所有其他子视图并将它们设置为 "isHidden" 或 "disabled" 但我想知道是否有更清晰的解决方案来解决这个问题,例如定义NSImageView 作为最顶层没有东西通过?

您可以将所有其他视图放在一个容器视图中并隐藏它。

您还可以使用无选项卡视图以编程方式在视图子层次结构之间切换。 (这基本上实现了同样的事情。当要管理的视图超过 2 个时会更好。)