1

CreateStandardAlert/RunStandardAlertを使用して作成されたダイアログがアプリケーションにあります。現在、私の「OK」ボタンはReturnキーに応答していますが、Escapeは何もしません。ドキュメントを読むと、モーダルダイアログはEscapeに応答する必要があると書かれていますが、これはそうではありません。RunStandardAlertの呼び出しでfilterProcを指定する必要がありますか(現在は0に設定しています)、それともコードのどこかで問題が発生している可能性がありますか?

4

2 に答える 2

1

ダイアログにはキャンセルボタンがないと思います。これは通常、エスケープに応答します。OKボタンがEscapeに応答することが期待されるかどうかはわかりません。SetDialogCancelItemボタンのアイテム番号がわかれば使えるかもしれません。

于 2012-09-06T18:03:17.837 に答える
0

ボタンの1つをキャンセルボタンとして設定していなかったことがわかりました。基本的に私はそれを設定するために次のコードを置く必要がありました:

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

(これは、GetStandardAlertDefaultParamsを使用してalertParamsにデータを入力した後です)

于 2012-09-07T14:56:53.273 に答える