Cocoa 将视图标记为“视图”;“忙”;可可粉
我正在编写一个Cocoa应用程序,我需要向用户指出视图无效,并且在后台作业完成之前无法响应 较长版本: 我的应用程序中的视图包含一些从服务器获取的数据。当应用程序确定数据无效时,它会获取新信息并显示。通常更新发生得太快而看不见,但是如果服务器或网络问题导致后台作业花费的时间超过一两秒钟,我需要确保用户Cocoa 将视图标记为“视图”;“忙”;可可粉,cocoa,nsview,Cocoa,Nsview,我正在编写一个Cocoa应用程序,我需要向用户指出视图无效,并且在后台作业完成之前无法响应 较长版本: 我的应用程序中的视图包含一些从服务器获取的数据。当应用程序确定数据无效时,它会获取新信息并显示。通常更新发生得太快而看不见,但是如果服务器或网络问题导致后台作业花费的时间超过一两秒钟,我需要确保用户 在作业完成之前无法与视图交互 可以判断视图正在等待更新;及 可以继续与应用程序的其他部分交互,直到作业完成 1) 这一点很重要,因为使用过时数据启动的任何操作都会失败,而且如果网络或服务器运行缓慢
ViewPart
上使用了showBusy
方法
如果没有一个标准的方法,有没有人对解决这个问题有什么建议?我使用OSX的时间不长,所以我甚至不确定在这种情况下应用程序的外观和行为。(此页面上的屏幕截图看起来很有希望,但它是iOS,而不是OSX:)
现在我正在用一个NSProgressIndicator
替换整个视图,并在任务完成后恢复视图,但是删除视图意味着如果出现问题,我的应用程序可能会处于一种不正常的状态。此外,我希望能够将此功能分解为它自己的类或类别(?),因为我的应用程序中有几个不同的视图类会出现此问题。理想情况下,我希望以Eclipse的view.showBusy(true)/view.showBusy(false)这样简单的东西结束
任何和所有的帮助都将不胜感激。
谢谢 为什么不在繁忙视图的顶部绘制另一个视图呢?您可以让它显示一个表示忙碌的图像,或者将其绘制为半透明,这样它会将忙碌视图的更新前版本遮住。这就是我链接到的iOS示例所显示的内容。苹果的用户界面指南似乎建议在附近放置一个异步进度监视器,让用户知道进度监视器适用于哪个视图,哪个视图看起来较差。我还没有想出一个方便的解决办法。在本例中,我回避了这个问题,让客户机订阅数据中的更改,而不是轮询数据的有效性,因此客户机永远不会处于知道自己有过时数据的状态。它假定其数据在服务器收到更新之前有效。