objective-c - NSPanel 始终位于所有其他应用程序窗口之上

标签 objective-c cocoa cocoa-sheet

我的 NSPanel 窗口始终位于所有其他应用程序窗口的顶部。这就是我加载它的方式:

[NSApp beginSheet:[self window] modalForWindow:[rootDocument mainWindow] modalDelegate:self didEndSelector:nil contextInfo:nil];

我尝试使用 setLevel: 和不同的级别类型,或使用 orderBack: 或 orderFront: 更改级别。但这些方法似乎没有效果,因为窗口总是在最上面。

谢谢

最佳答案

您不能将 nilNil、0 或 NULL 传递给 didEndSelector。曾经。您将选择器传递给已声明的方法 (-sheetDidClose:returnCode:contextInfo:)。您正在传递选择器以外的其他内容,这使得您为消除该工作表所做的任何其他操作都受到怀疑。 (您没有说该小组是否会保持领先,因为它从未被解雇,但这是我的假设。)

看看Using Custom Sheets ,这是 Apple 自己关于该主题的文档。

此外,请确保您使用的面板在 IB 中关闭了“启动时可见”标志。

关于objective-c - NSPanel 始终位于所有其他应用程序窗口之上,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14628716/

相关文章:

objective-c - NSMutableData 正确的方法?

ios - 是否可以将文件上传到服务器而不将其转换为 NSData?

swift - NSTextView 滚动

ios - 不推荐使用 Objective-C 选择器的字符串文字,改用 '#selector'

objective-c - 使用核心数据,当一对多关系低于最小计数时,是否可以自动删除实体?

cocoa - 如何在多文档环境下禁用退出功能?

objective-c - 在 NSSavePanel 中按下 OK 后无法调用 beginSheet?

Cocoa:在 NSApp beginSheet 后显示错误导致主窗口隐藏

objective-c - iOS从web读取Json并显示到tableView

ios - 一个类似于 UIImagePickerController 的 Picker Controller 来选择文件 ios 7