4

OSX (현재 iOS가 아님) 용 확장형 위젯 프로그래밍을 배우고 있습니다. 그리고 연습으로 캘린더 위젯을 개발하려고합니다.OSX에서 오늘 위젯 이름이 항상 "위젯"인 이유는 무엇입니까?

그러나 알림 센터에서 위젯의 제목이나 이름은 내가 설정 한 것이 아니라 항상 "위젯"입니다.

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

, I 위젯 그룹의 Info.plist에서 "번들 표시 이름"의 값을 변경 컴파일 대상은 위젯입니다.

위젯 시뮬레이터에서 위젯을 테스트 할 때 이름은 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

나는 그 코드를 시도 했으므로 설명하는 문제를 재현 할 수 없습니다. 위젯은 "이번 달"이라는 알림 센터에 나타납니다. –

+0

이렇게하면 시스템이 "위젯"이라는 이름의 "캐시"를 저장했지만 "캐시"를 지우는 방법을 모르겠습니다 ... 이름을 다른 것으로 수정하면 변경됩니까? – Programus

+0

시스템을 재시작하고 내 응용 프로그램을 다시 실행하면 위젯 이름이 내가 설정 한 이름이됩니다. 시스템이 메모리에있는 모든 위젯의 이름을 기억하는 것처럼 보입니다. 나는 여전히 전체 시스템을 다시 시작하지 않고 이름을 새로 고치는 방법이 있는지 알고 싶다. – Programus

답변

7

에서 볼 수 있습니다. 당신이

"CFBundleDisplayName" = "My App"; 

Widget/InfoPlist.strings엑스 코드을 종료 원하는대로에

업데이트 번들 표시 이름.

종료 위젯 시뮬레이터.

Activity Monitor 앱으로 이동하여 Notification Center 프로세스 이름을 종료하십시오.

알림 센터는 업데이트 된 번들 표시 이름으로 다시 시작됩니다.