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进程名称。

通知中心将重新启动并更新捆绑显示名称。

相关问题