RunStandardAlert 永远不会返回,按钮无响应
我正在尝试在一个非常简单的应用程序中创建一个简单的对话框。它是应用程序中唯一的 UI。但是,当我调用 RunStandardAlert 时,按钮没有响应,并且函数调用永远不会返回。我没有在应用程序的其他任何地方使用 Carbon 或 Cocoa。
这是我正在使用的代码,来自 Carbon 教程。我直接从我的 main() 函数调用它,但我也尝试在使用 InstallEventLoopTimer() 注册事件循环计时器后调用 RunApplicationEventLoop() ,这样我可以从那里调用下面的代码,以防万一发生一些神奇的情况您运行应用程序事件循环来执行对话框工作所需的设置(巫毒!)。
DialogRef theItem;
DialogItemIndex itemIndex;
CreateStandardAlert(kAlertStopAlert, CFSTR("Oh dear, the penguin’s disappeared."),
CFSTR("I hope you weren’t planning to open source him."), NULL, &theItem);
RunStandardAlert (theItem, NULL, &itemIndex);
I'm trying to create a simple dialog box from within a very simple application. It's the only UI in the application. But when I call RunStandardAlert, the buttons are non-responsive, and the function call never returns. I am not using Carbon or Cocoa anywhere else in the app.
This is the code I am using, from the Carbon tutorial. I am calling this directly from my main() function, but I have also tried calling calling RunApplicationEventLoop() after registering an event loop timer with InstallEventLoopTimer() so I could call the below code from there in case there was some magic going on when you run your application event loop that does the setup required for dialog boxes to work (voodoo!).
DialogRef theItem;
DialogItemIndex itemIndex;
CreateStandardAlert(kAlertStopAlert, CFSTR("Oh dear, the penguin’s disappeared."),
CFSTR("I hope you weren’t planning to open source him."), NULL, &theItem);
RunStandardAlert (theItem, NULL, &itemIndex);
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
如果可执行文件未正确位于应用程序包中,您将无法接收事件。
foo.c
然后你编译它
现在你需要创建一个目录
,然后将二进制文件
foo
放入现在你可以调用
或
参见 捆绑包编程指南。
You can't receive an event if the executable is not in an app bundle correctly.
foo.c
Then you compile it by
Now you need to create a directory
and then put the binary
foo
inNow you can either call
or
See Bundle Programming Guide.