【问题标题】:Show NSWindow when webview is loaded加载 webview 时显示 NSWindow
【发布时间】:2015-01-07 15:06:26
【问题描述】:

是否可以延迟显示 NSWindow 直到它包含的 webview 完全加载?

我正在从文件系统加载文件,但您仍然会闪烁。我想知道我是否可以以某种方式等待 webview 加载,然后才出现窗口。

【问题讨论】:

  • 只是一个想法,但是您在哪里加载视图?在窗口委托的 windowDidLoad 方法中?
  • 视图通过情节提要自动加载。一种可能的解决方案是将 alpha 设置为 0,一旦一切就绪,将 animator 代理 alpha 设置为 1。这种方法可行,但窗口的行为与标准行为不同。
  • 使用 xib 文件并创建自己的窗口控制器可能会给您更多的灵活性。

标签: objective-c cocoa swift


【解决方案1】:
  1. 在 Interface Builder(属性部分)中选择窗口并取消选中 Visible At Launch
  2. 要在所有资源加载完成时收到通知,请使用:https://developer.apple.com/library/mac/documentation/Cocoa/Reference/WebKit/Protocols/WebFrameLoadDelegate_Protocol/index.html#//apple_ref/occ/instm/NSObject/webView:didFinishLoadForFrame:

    -(void)webView:(WebView *)sender didFinishLoadForFrame:(WebFrame *)frame { ... }

  3. 在方法内部使用 [windowController showWindow:nil];显示窗口

【讨论】:

  • 哇。这看起来很明显。谢谢。我会尝试并报告。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多