gpt4 book ai didi

swift - NSPopover 以分离状态启动

转载 作者:搜寻专家 更新时间:2023-10-31 08:03:46 34 4
gpt4 key购买 nike

有没有办法强制 NSPopover 在分离状态下启动?我只看到 isDetached,它是 popover 状态的只读属性和 NSPopoverDelegate 方法 detachableWindow(forPopover:),它让我可以覆盖创建的窗口。我想点击一个按钮,让 NSPopover 以这张照片中的状态启动。

这个窗口的样式正是产品要求,我似乎找不到任何 NSWindow 样式设置可以让窗口做这样的事情(也不是 NSPanel)

这个独立的弹出窗口功能看起来很特别,因为它:

  1. 非模态,但保持在主应用程序之上。仍然能够像在消息中一样与主应用程序交互,您仍然可以点击并输入新消息。
  2. 点击另一个应用程序 AppFoo,会将主应用程序和帮助程序窗口都放在 AppFoo 后面。
  3. 帮助程序窗口可以四处移动,并且不会在应用停用时隐藏(选择另一个应用)。
  4. 在左上角有一个原生的灰色小 X。

Detached NSPopover from Details button in Messages

最佳答案

如果你不介意调用私有(private)API,其实很简单:

let detach = NSSelectorFromString("detach")
if popover.responds(to: detach) {
popover.perform(detach)
}

甚至不需要添加委托(delegate)。我不知道这个私有(private)方法是什么时候添加的,但它至少从 macOS 10.13 开始可用。不过,我怀疑自 NSPopover 引入以来它就可用了。

关于swift - NSPopover 以分离状态启动,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51031704/

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