2017-07-05 1 views
1

スマートカードからデータを読み取るan appがあります。しばらく時間がかかることができそうので、私はデータが読み出されている間、アプリとの相互作用を防ぐために、モーダルシートを使用しています:警告メッセージではないシートを作成する

_CardReadSheet_spinnerと「読み取りデータの効果にローカライズされたテキストを示し
[_spinner startAnimation:self]; 
[NSApp beginSheet:_CardReadSheet modalForWindow:_window modalDelegate:self didEndSelector:@selector(endSheet:returnCode:contextInfo:) contextInfo:nil]; 

、しばらくお待ちください。_windowは私のメインウィンドウです。endSheet:returnCode:contextInfoはシートを閉じるように指示します。

問題は、モーダルシートを使用することは明らかにエラーまたは警告メッセージとしてのみ意味されるため、このようにユーザーに表示すると、デフォルトの警告音が生成されることになります。これは意図ではありません。

音を出さないようにするにはどうすればよいですか?シートを表示するために間違った方法を使用している場合や、シートを使用するのが適切でない場合は、代わりに何をすべきですか?

+0

クール!私は答えを出しました。 – Moritz

答えて

1

警告音はNSAppにシートを提供するよう要求しているためです。警告は警告として出されます。私は理由を説明する正式な情報源を見つけることができませんが、これは起こっていることです。

同様のシートを取得しても警告音が出ないようにするには、NSAppの代わりにNSWindowでbeginSheetを呼び出します。スウィフトで

クイック例:

myExistingWindow.beginSheet(myNewSheet, completionHandler: nil) 

そして、それを閉じるために:

myExistingWindow.endSheet(myNewSheet) 
関連する問題