- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我想知道是否允许使用 runModalForWindow() 启动多个模式循环。在我的应用程序中,我有以下设置:当用户在非模态窗口 A 中按下按钮 A 时,将使用 runModalForWindow() 打开模态窗口 B。在模态窗口 B 中,有一个按钮 B。如果用户按下该按钮 B,将使用 runModalForWindow() 打开模态窗口 C。当模态窗口 C 打开时,窗口 A 和 B 应阻止用户输入;当模态窗口 B 打开时,窗口 A 应被阻止。
这种方法可以与 runModalForWindow() 一起使用,但是我遇到了一个小问题,这让我想知道我在这里所做的事情是否被允许。当模态窗口 C 打开时,我实际上可以将模态窗口 B 移动到模态窗口 C 前面。B 不接受任何输入,但实际上可以移动到 C 前面。但是,窗口 A 永远不能移动到前面B(或C)的...它总是留在后台。
有人知道为什么 B 可以移到 C 前面,而 A 永远不能移到 B 或 C 前面吗?是否允许多次使用runModalForWindow()?
最佳答案
模态窗口的 level
设置为 NSModalPanelWindowLevel
。这是位于普通 window 前面的窗位。这就是为什么你不能将窗口 A 放在窗口 B 前面。
但是,窗口 B 和 C 都处于同一级别。因此,窗口服务器并不强制窗口 C 始终位于窗口 B 的前面。
您可以尝试通过将窗口 C 的级别设置为高于 NSModalPanelWindowLevel
来解决此问题,但这在一般情况下可能会出现问题。如果您将级别增加太多,它可能会出现在系统 UI 元素的前面,例如菜单栏或边框指示器(例如音量更改指示器)。
您还可以使用 addChildWindow(_:ordered)
将窗口 C 设为窗口 B 的子窗口。这将强制执行指定的顺序。它确实有一些副作用。例如,如果移动窗口 B,窗口 C 也会移动,以保持相对定位相同。
关于cocoa - 多次使用 NSApplication runModalForWindow,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29489572/
我想知道是否允许使用 runModalForWindow() 启动多个模式循环。在我的应用程序中,我有以下设置:当用户在非模态窗口 A 中按下按钮 A 时,将使用 runModalForWindow(
我有一个内存损坏错误(我怀疑),这会导致特定 UI 操作后程序崩溃。这是一个 Cocoa Objective-C 应用程序,不使用 GC。 经过几个小时的调试,我找到了崩溃的可能原因: DiscSel
我有一个简单的核心数据应用程序,它在主窗口中显示实体列表。为了创建或添加新实体,我使用带有单独托管对象上下文的第二个模式窗口,以便可以撤消/重做更改,而不会干扰主托管对象上下文。 使用runModal
我试图在我的应用程序顶部显示一个模式对话框,但它在关闭时阻塞了我的主应用程序窗口。这是我的代码: TutorialWindowController* pTutorialController = [[T
我正在使用适用于 OSX 的 Dropbox API。一切正常,除非我想在以 [NSApp runModalForWindow:thisWindow]; 启动的模式窗口中进行调用;看来模态循环阻止了D
我有 url 连接,通常工作正常 NSURLConnection *connection = [[NSURLConnection alloc] initWithRequest:request
我有一个窗口(及其 Controller )应该阻止所有其他窗口。因此,我想使用 [NSApp runModalForWindow..] 显示窗口。 问题是谁负责调用这个方法: 窗口的 Control
我是一名优秀的程序员,十分优秀!