objective-c - runModalForWindow 限制 http 请求

标签 objective-c cocoa modal-dialog runloop

我有 url 连接,通常工作正常

NSURLConnection *connection = [[NSURLConnection alloc] initWithRequest:request
                                                              delegate:delegate];

但是当我创建一个模态窗口时,没有请求收到响应:

[NSApp runModalForWindow:window];

如果我注释掉这一行,从而创建一个“标准”窗口,一切正常。

我尝试实现 NSURLConnectionDelegate 中的所有方法,但没有调用其中一个。

我怀疑这与“运行循环”有关,但在这方面经验不足。有人有这方面的经验吗?

谢谢

最佳答案

如果您的目标是 10.5+,您可以告诉 NSURLConnection 也在 NSModalPanelRunLoopMode 中运行(当前线程的运行循环在呈现模态视图时所处的模式) ) 通过

-(void)scheduleInRunLoop:(NSRunLoop *)aRunLoop forMode:(NSString *)mode

aRunLoop 可能是 [NSRunLoop currentRunLoop]mode 可能是 NSModalPanelRunLoopMode。更多信息在 NSURLConnection doc .

如果您支持早期的操作系统,您可能需要发挥创意(即使用多线程)。在 10.5 之前很好地讨论了这个问题 here .

关于objective-c - runModalForWindow 限制 http 请求,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4989181/

相关文章:

objective-c - 从 osx 中的代码更改键盘布局

Cocoa 自定义系统上下文菜单

javascript - 扩展 bootstrap jQuery 模态

asp.net - 当我创建模态及其叠加层时,叠加层不会延伸到整个文档

Objective-C 未初始化指针与空指针

ios - 如何在 IOS 中隐藏 UILabel 中的文本

objective-c - 管理调用委托(delegate)回调 block 的对象的内存

objective-c - Cocoa 多值 bool 绑定(bind),使用逻辑 OR

java - 等待模式在 Selenium 2.0 中消失

c++ - 在 C++ 头文件中加入一行 objC