Archive for the ‘NSAlert’ Category

アプリケーションを作るとき、ダイアログというのは非常に便利。
開発者のメッセージがダイレクトにユーザに伝わる。

しかし、慣れてくると人はあまりダイアログを読まなくなる。
#つまり、アラートが表示されたら即エンターになってしまう。。。
これは至極当然のことではあるが、
しかし、エラーのときの対処法やなにでエラーになったのかを出しているときは
そのメッセージを読んでほしいときもある。

そんなときに、NSAlertのキーの割当をはずして、必ずクリックさせるようにする方法。

  1. NSAlert* alert =[ NSAlert alertWithMessageText:TEXT
  2. defaultButton:DEFAULT
  3. alternateButton:ALTERNATE
  4. otherButton:OTHER
  5. informativeTextWithFormat:INFO ];
  6.  
  7. //アラートに表示されているボタンの配列
  8. NSArray* array = [ alert buttons ];
  9.  
  10. NSEnumerator* enu = [ array objectEnumerator ];
  11. id obj;
  12. while( obj = [ enu nextObject ] ){
  13. //キー割当を外す
  14. [ obj setKeyEquivalent:@"" ];
  15. }