runModalForWindow限制http请求

我有url连接,通常工作正常
NSURLConnection *connection = [[NSURLConnection alloc] initWithRequest:request
                                                              delegate:delegate];
但是当我创建一个模态窗口时,没有请求收到响应:
[NSApp runModalForWindow:window];
如果我评论这一行,从而创建一个“标准”窗口,一切正常。 我尝试从NSURLConnectionDelegate实现所有方法,而不是调用它们中的一个。 我怀疑这是关于'run loops'的事情,但是在这方面没什么经验。有没有人有这方面的经验? 谢谢     
已邀请:
如果你的目标是10.5+,你可以告诉
NSURLConnection
也可以在
NSModalPanelRunLoopMode
(当前线程的runloop模式,同时呈现模态视图)中运行
-(void)scheduleInRunLoop:(NSRunLoop *)aRunLoop forMode:(NSString *)mode
其中
aRunLoop
可能是
[NSRunLoop currentRunLoop]
mode
可能是
NSModalPanelRunLoopMode
。更多信息在
NSURLConnection
doc中。 如果您支持早期操作系统,则可能必须具有创造性(即使用多线程)。这里10.5之前很好地讨论了这个问题。     
我没有碰到你所拥有的情况,但我建议在后台线程中产生并启动连接。     
我也遇到了在模态窗口中使用NSURLConnection时没有调用委托方法的相同问题。 经过一番调查,下面的代码解决了它。
NSURLConnection* conn = [[NSURLConnection alloc] initWithRequest:requst delegate:self startImmediately:NO];
[conn scheduleRunLoop:[NSRunLoop currentLoop] forMode:NSModalPanelRunLoopMode];
[conn start];
但是,当connectionDidFinishLoading调用时,[NSApp stopModal]不起作用,需要调用[NSApp abortModal]。     

要回复问题请先登录注册