我今天正在学习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
我试过这段代码,我无法重现你描述的问题。该小部件显示在标记为“本月”的通知中心中。 – 2015-02-08 00:01:32
所以这意味着系统存储了一些名称为“Widget”的“缓存”,但我不知道如何清除“缓存”......如果您将该名称修改为其他内容,它会改变吗? – Programus 2015-02-08 09:59:15
我重新启动系统并重新运行我的应用程序,并且该小部件的名称成为我设置的名称。看起来系统会记住内存中每个小部件的名称。我仍然想知道是否有方法刷新名称而不重新启动整个系统。 – Programus 2015-02-08 12:13:28