在可可中创建父模式较少的对话框或消息框或警告表单?

时间:2009-12-15 11:25:22

标签: objective-c cocoa macos

Issue1: 我想在启动应用程序的主窗口之前显示警报窗口或消息框。当我使用NSRunAlertPanel()时,它没有显示警告窗口。它正在直接启动应用程序的主窗口。

Issue2: 我想在一个跨越主线程的线程中创建一个Modal(登录对话框)和消息框。

紧急

所以,请尽快回复......

谢谢普拉迪普。

2 个答案:

答案 0 :(得分:3)

  

问题2:我想在从主线程跨越的线程中创建一个Modal(登录对话框)和消息框。

在Cocoa中,几乎所有UI代码都必须在主线程上运行。有一些有限的,明确定义的异常(例如,Snow Leopard中引入的选择性线程图),但一般规则是不在另一个线程上运行UI代码。

此外,您还不需要线程。它不像模态对话将是计算密集型的。

向NSApp发送runModalForWindow:消息,并传递对话框。这将在主线程上运行对话框,阻止UI的其余部分。如果您不想阻止用户界面(通常不应该这样做),只需按键并按顺序排序即可。

答案 1 :(得分:0)

你能做的是:

  • 取消选中Interface Builder中主窗口的“启动时可见”选项。
  • 照常启动您的申请
  • 决定是否显示模态对话框
  • 调用主窗口的“orderFront:”消息。