如何隐藏/显示GPUI窗口
所以我在尝试用 zed 的 GPUI 来做一个应用,它可以根据结构体中的一个字段来隐藏和显示。
然而,我只能 cx.remove_window,但从来没能把窗口重新弹出。
即使使用 NSWindow.setIsVisible(true),在应用被隐藏之后也不会显示出来
解决方案
算了,我用下面这种方式把它实现了:
pub fn handle_event(&mut self, event: RootEvent, cx: &mut Context<Self>) {
match event {
RootEvent::AppRefresh(apps) => self.set_open_apps(apps),
RootEvent::ShowWindow => {
self.set_visibility(true);
let displays = cx.displays();
cx.open_window(window_options(self.get_bounds(displays)), |_, app| {
app.new(|_| self.clone())
})
.unwrap();
}
RootEvent::HideWindow => {
self.set_visibility(false);
cx.hide();
}
}
}
唯一的问题是,重新创建应用确实比较昂贵,但我觉得这个问题可以很容易解决。
站内所有文章版权归属LeftHeroAI导航站,无授权禁止任何主体转载、抄袭、复制内容,亦不得私自架设镜像站点。一经侵权,本站将通过法律途径追责。