为什么OSX中今天小部件的名称总是“Widget”?

时间:2015-02-07 12:49:54

标签: cocoa xcode6 osx-yosemite today-extension notificationcenter

我今天正在学习OSX的扩展小部件编程(目前不是iOS)。我正在尝试开发一个日历小部件作为练习。

但是通知中心中小部件的标题或名称始终是" Widget"而不是我设置的。

我更改了" CFBundleDisplayName"的值在所有位置的InfoPlist.strings中(目前只有Base和简体中文)。

InfoPlist.strings(Base)

/* 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" = "显示本月月历";

另外,我改变了" Bundle显示名称"的值。在Widget组的Info.plist中,编译目标是Widget。

当我在Widget Simulator中测试小部件时,它的名称是我在InfoPlist.strings中设置的。但是当我编译(甚至清理和编译)并运行整个应用程序,然后打开通知中心时,我的新小部件的名称总是" Widget"。

根据指南(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 个答案:

答案 0 :(得分:7)

仅供参考,我如何解决同样的问题。

将Bundle Display Name更新为您想要的任何内容

Widget/InfoPlist.strings

  "CFBundleDisplayName" = "My App";

退出 XCode

退出小部件模拟器

进入活动监视器应用并退出Notification Center进程名称。

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