使用ESC键关闭碳模态对话框

时间:2012-09-06 15:02:49

标签: c++ macos modal-dialog macos-carbon

我的应用程序中有一个使用CreateStandardAlert / RunStandardAlert创建的对话框。目前我的“确定”按钮响应Return键,但Escape不执行任何操作。阅读文档,它说模态对话框应该响应Escape,但这不是。我是否需要在对RunStandardAlert的调用中指定filterProc(目前我已将其设置为0),或者我的代码中的其他地方最有可能出现问题?

2 个答案:

答案 0 :(得分:1)

我假设您的对话框没有“取消”按钮,这通常是对Escape的响应。我不确定是否预期OK按钮应该响应Escape。如果您能找到按钮的项目编号,则可以使用SetDialogCancelItem

答案 1 :(得分:0)

事实证明我没有将我的一个按钮设置为取消按钮。基本上我需要输入以下代码来设置它:

alertParams.cancelText      = (CFStringRef) kAlertDefaultCancelText;
alertParams.cancelButton    = kAlertStdAlertCancelButton;

(这是在使用GetStandardAlertDefaultParams填充alertParams之后)