2017-07-05 54 views
1

我有an app從智能卡讀取數據。因爲這樣做可能需要一段時間,我使用的是模態片,防止與應用的互動,同時在讀取數據:創建片不是警告消息

[_spinner startAnimation:self]; 
[NSApp beginSheet:_CardReadSheet modalForWindow:_window modalDelegate:self didEndSelector:@selector(endSheet:returnCode:contextInfo:) contextInfo:nil]; 

_CardReadSheet顯示_spinner和本地化的文本爲「讀取數據的影響,請稍候「,_window是我的主窗口,而endSheet:returnCode:contextInfo只是告訴表單關閉。

的問題是,使用模態片材顯然是僅作爲一個錯誤或警告消息,因此它示出了將在默認警告聲音這樣的結果,用戶被生產。這不是意圖。

我該如何讓它不發出聲音?如果我用錯誤的方式顯示工作表,或者如果使用工作表不是正確的做法,我應該怎麼做?

+0

酷!我已經回答了。 – Moritz

回答

1

警告聲音是因爲您要求NSApp提供表單:它是作爲警報。我無法找到解釋原因的官方消息來源,但這是正在發生的事情。

要獲得的相似的片狀,但沒有任何警告聲,呼籲beginSheet上NSWindow而不是NSApp表示。在斯威夫特

簡單的例子:

myExistingWindow.beginSheet(myNewSheet, completionHandler: nil) 

,並關閉它:

myExistingWindow.endSheet(myNewSheet)