檢視原始碼 wxNotificationMessage (wx v2.4.3)
這個類別允許以非侵入的方式向使用者顯示訊息。
目前,它在 Windows、macOS、GTK 上以原生方式實作,並在其他平台下使用通用的 Toast 通知。不建議這麼做,但可以使用 wxGenericNotificationMessage
來替代原生通知。如果您的應用程式需要原生實作中不可用的功能,這可能會是有意義的。
請注意,這個類別不是視窗,因此不繼承自 wxWindow
。
平台注意事項
段落
在 Windows 8 之前,氣泡通知會從工作列的通知區域中的圖示顯示。如果您的應用程式使用 wxTaskBarIcon
,您應該呼叫 useTaskBarIcon/1
以確保在通知區域中只顯示一個圖示。Windows 10 將所有通知顯示為彈出式 Toast。為了在 Windows 10 上抑制通知區域中的額外圖示,並在 Windows 8 上支援 Toast 通知,建議在顯示第一個通知訊息之前呼叫 mSWUseToasts/1
。
段落
macOS 實作使用「通知中心」來顯示原生通知。為了使用動作,您的通知必須使用警示樣式。使用者可以在系統設定中啟用此功能,或者在 Info.plist 中將 NSUserNotificationAlertStyle
值設定為 alert
。請注意,使用者始終可以選擇更改通知樣式。
這個類別繼承自以下類別,並可以使用其中的函式:
wxWidgets 文件:wxNotificationMessage
事件
從此類別發出的事件類型
摘要
函式
將動作新增至通知。
隱藏通知。
銷毀物件
啟用 Windows 8 開始提供的 Toast 通知,並在 Windows 10 上抑制通知區域中的額外圖示。
預設建構子,使用 setParent/2
、setTitle/2
和 setMessage/2
來初始化物件,然後再顯示它。
等同於 new(Title, [])
。
使用給定的屬性建立通知物件。
此參數目前可用於指定要在通知中顯示的圖示。
指定要在通知中顯示的自訂圖示。
設定通知的主要文字。
設定此通知的父級:通知將與此視窗的頂層父級相關聯,或者,如果未呼叫此方法,則預設與主應用程式視窗相關聯。
設定標題,它必須是一個簡潔的字串(不超過 64 個字元),使用 setMessage/2
為使用者提供更多詳細資訊。
等同於 show(This, [])
。
向使用者顯示通知,並在 timeout
秒過後隱藏它。
如果應用程式已經使用 wxTaskBarIcon
,則應使用此方法將其連接到通知。
類型
-type wxNotificationMessage() :: wx:wx_object().
函式
-spec addAction(This, Actionid) -> boolean() when This :: wxNotificationMessage(), Actionid :: integer().
-spec addAction(This, Actionid, [Option]) -> boolean() when This :: wxNotificationMessage(), Actionid :: integer(), Option :: {label, unicode:chardata()}.
將動作新增至通知。
如果實作支援,這些通常是通知中可供使用者選擇的按鈕。
傳回值:如果目前的實作或作業系統版本不支援通知中的動作,則傳回 false。
自:3.1.0
-spec close(This) -> boolean() when This :: wxNotificationMessage().
隱藏通知。
如果已隱藏則傳回 true,如果無法隱藏則傳回 false(例如,在某些系統上,自動隱藏的通知無法手動隱藏)。
-spec destroy(This :: wxNotificationMessage()) -> ok.
銷毀物件
-spec mSWUseToasts() -> boolean().
等同於 mSWUseToasts([])
。
-spec mSWUseToasts([Option]) -> boolean() when Option :: {shortcutPath, unicode:chardata()} | {appId, unicode:chardata()}.
啟用 Windows 8 開始提供的 Toast 通知,並在 Windows 10 上抑制通知區域中的額外圖示。
Toast 通知 require
在開始功能表中有應用程式的捷徑。開始功能表捷徑需要包含應用程式使用者模型 ID。建議應用程式的安裝程式建立捷徑,並且應用程式在 shortcutPath
中指定安裝程式建立的捷徑。呼叫此方法將在啟用 Toast 通知之前驗證(並在必要時修改)捷徑。
傳回值:如果無法啟用 Toast 通知,則傳回 false。
僅適用於:wxmsw
自:3.1.0
-spec new() -> wxNotificationMessage().
預設建構子,使用 setParent/2
、setTitle/2
和 setMessage/2
來初始化物件,然後再顯示它。
-spec new(Title) -> wxNotificationMessage() when Title :: unicode:chardata().
等同於 new(Title, [])
。
-spec new(Title, [Option]) -> wxNotificationMessage() when Title :: unicode:chardata(), Option :: {message, unicode:chardata()} | {parent, wxWindow:wxWindow()} | {flags, integer()}.
使用給定的屬性建立通知物件。
請參閱 setTitle/2
、setMessage/2
、setParent/2
和 setFlags/2
以取得對應參數的說明。
-spec setFlags(This, Flags) -> ok when This :: wxNotificationMessage(), Flags :: integer().
此參數目前可用於指定要在通知中顯示的圖示。
有效值為 wxICON_INFORMATION
、wxICON_WARNING
和 wxICON_ERROR
(請注意,此處不允許使用 wxICON_QUESTION
)。此類別的某些實作可能不支援圖示。
請參閱:setIcon/2
-spec setIcon(This, Icon) -> ok when This :: wxNotificationMessage(), Icon :: wxIcon:wxIcon().
指定要在通知中顯示的自訂圖示。
此類別的某些實作可能不支援自訂圖示。
請參閱:setFlags/2
自:3.1.0
-spec setMessage(This, Message) -> ok when This :: wxNotificationMessage(), Message :: unicode:chardata().
設定通知的主要文字。
這應該比標題更詳細的描述,但仍應限制在合理的長度內(不超過 256 個字元)。
-spec setParent(This, Parent) -> ok when This :: wxNotificationMessage(), Parent :: wxWindow:wxWindow().
設定此通知的父級:通知將與此視窗的頂層父級相關聯,或者,如果未呼叫此方法,則預設與主應用程式視窗相關聯。
-spec setTitle(This, Title) -> ok when This :: wxNotificationMessage(), Title :: unicode:chardata().
設定標題,它必須是一個簡潔的字串(不超過 64 個字元),使用 setMessage/2
為使用者提供更多詳細資訊。
-spec show(This) -> boolean() when This :: wxNotificationMessage().
等同於 show(This, [])
。
-spec show(This, [Option]) -> boolean() when This :: wxNotificationMessage(), Option :: {timeout, integer()}.
向使用者顯示通知,並在 timeout
秒過後隱藏它。
此處可以使用特殊值 Timeout_Auto
和 Timeout_Never
,請注意,您不應該依賴 timeout
完全被遵守,因為目前的平台可能只支援預設逾時值,並且因為使用者可能可以關閉通知。
注意:當在 wxGTK 中使用原生通知時,具有 wxICON_WARNING
或 wxICON_ERROR
旗標的通知將會忽略逾時,除非使用者明確隱藏它們,否則它們始終保持顯示,即行為就像給定了 Timeout_Auto 一樣。
傳回值:如果發生錯誤,則傳回 false。
-spec useTaskBarIcon(Icon) -> wxTaskBarIcon:wxTaskBarIcon() when Icon :: wxTaskBarIcon:wxTaskBarIcon().
如果應用程式已經使用 wxTaskBarIcon
,則應使用此方法將其連接到通知。
如果使用 Toast 通知,則此項無效。
傳回值:先前使用的工作列圖示(可能是 NULL
)
僅適用於:wxmsw