2012-10-25 33 views

回答

0

我強烈懷疑你無能爲力;作爲一個插件,你是二等公民,在這個過程中的客人。

+0

真的嗎?我以爲我的插件可以接收所有事件時,它已經focus.But根據你所說的,我應該改變另一個快捷鍵,這是如此的悲劇! – Magical

+0

你在mac上的插件實際上並沒有窗口,所以就操作系統而言,它從未獲得過關注。所有事件都來自瀏覽器,它轉發它認爲相關的事件。 – taxilian

+0

感謝您的幫助,出納員。 – Magical

0

您可以接受命令事件,您必須偵聽爲NP_GetEntryPoints方法中的NPPluginFuncs結構的事件成員設置回調。

在該方法中,您將收到所有鼠標和鍵盤事件以及窗口焦點事件。您可以將第二個參數從void *強制轉換爲NPCocoaEvent,您將在其中找到所有必需的參數,如事件類型,鼠標狀態,鍵和焦點數據。

在挖掘NPCocoaEvent的'data'union之前,請檢查您正在處理的事件類型,否則您可以獲得EXC_BAD_ACCESS。

我在使用瀏覽器共享命令時遇到問題,在我的情況下,Command + O應該只激活插件的文件打開對話框,但它也會觸發瀏覽器打開文件對話框。據說,事件處理方法返回TRUE應該向瀏覽器報告插件處理事件,但我還沒有運氣。