我正在尝试使用主窗口构建一个UI,该主窗口显示一些内容,有时会在窗口右边缘的模态视图中滑动。当模态打开时,必须阻止与主要内容的交互;但是,单击主要内容应该关闭模式。这是一个模型:
请注意,用户只能看到一个窗口。也就是说,模态应该嵌套在主窗口中。
我对AppKit和Cocoa的总体经验很少。到目前为止,我的方法是构建我的UI:
Root region (NSView)
-> MainRegion (NSView)
-> ModalRegion (NSView; toggle hidden and animate the left edge)
然后将子视图添加到MainRegion和ModalRegion以显示内容。问题是ModalRegion不会吸收输入事件。
建立这种UI的AppKit方法是什么?我主要只需要了解视图层次结构应该如何形成以及如何阻止/吸收输入事件。我想我自己可以搞清楚动画。此外,该应用程序的目标是macOS 10.8+,但更新版本的答案也会有所帮助。
答案 0 :(得分:0)
它不是像UI那样的macOS,但你可以使用两种方法。在这两种情况下,您都可以使用透明视图覆盖主窗口,并在鼠标单击时关闭模态视图。如果您需要与主窗口重叠的阴影(如模型中所示),则需要使用附加到主窗口的窗口作为子窗口。如果不是这种情况,那么使用附加到主窗口的contentView的视图就足够了。
一切顺利。