4

我今天正在學習OSX的擴展Widget編程(目前不是iOS)。我正在嘗試開發一個日曆小部件作爲練習。爲什麼在OSX中的今天小部件的名稱總是「小部件」?

但是,通知中心的窗口小部件的標題或名稱始終是「Widget」,而不是我設置的內容。

我更改了InfoPlist.strings中所有位置(當前只有基本和簡體中文)的「CFBundleDisplayName」的值。

InfoPlist.strings(鹼)

/* Display name and description for this extension. */ 
"CFBundleDisplayName" = "This Month"; 
"com.apple.notificationcenter.widget.description" = "Show calendar for this month"; 

InfoPlist.strings(簡體中國)

/* Display name and description for this extension. */ 
"CFBundleDisplayName" = "本月"; 
"com.apple.notificationcenter.widget.description" = "顯示本月月曆"; 

另外,我在Info.plist中在窗口小部件組改變 「包顯示名稱」 的值其中編譯目標是Widget。

當我在Widget Simulator中測試Widget時,它的名字就是我在InfoPlist.strings中設置的名字。但是,當我編譯(甚至清理&編譯)並運行整個應用程序,然後打開通知中心時,我的新小部件的名稱始終是「小部件」。

根據指南(https://developer.apple.com/library/mac/documentation/General/Conceptual/ExtensibilityPG/ExtensionCreation.html#//apple_ref/doc/uid/TP40014214-CH5-SW6),應該在InfoPlist.strings中設置小部件的名稱,並且不提及其他地方。

我錯過了一些重要的設置文件或代碼有問題嗎?

的代碼可以在https://github.com/programus/this-month

+1

我試過這段代碼,我無法重現你描述的問題。該小部件顯示在標記爲「本月」的通知中心中。 – 2015-02-08 00:01:32

+0

所以這意味着系統存儲了一些名稱爲「Widget」的「緩存」,但我不知道如何清除「緩存」......如果您將該名稱修改爲其他內容,它會改變嗎? – Programus 2015-02-08 09:59:15

+0

我重新啓動系統並重新運行我的應用程序,並且該小部件的名稱成爲我設置的名稱。看起來系統會記住內存中每個小部件的名稱。我仍然想知道是否有方法刷新名稱而不重新啓動整個系統。 – Programus 2015-02-08 12:13:28

回答

7

發現僅作參考我該如何解決同樣的問題。

到任何你想要的

Widget/InfoPlist.strings

"CFBundleDisplayName" = "My App"; 

退出的XCode更新包顯示名稱。

退出Widget Simulator

進入活動監視器應用程序和退出Notification Center進程名稱。

通知中心將重新啓動並更新捆綁顯示名稱。

相關問題