2

私のアプリはカレンダーを描画します。-[NSCalendar autoupdatingCurrentCalendar]ユーザーがシステム環境設定を変更した場合にカレンダーを再描画したいので、ivar、_calを設定しました。たとえば、週の最初の日を日曜日から別の曜日に変更できます。

現在、毎秒起動するNSTimerを使用しています。[_cal firstWeekday]をキャッシュされたコピーと照合して、変更されているかどうかを確認します。もしそうなら、私は再描画します。

代わりに、カレンダーに影響するシステム環境設定が変更された場合に通知を受け取る方法があるかどうか疑問に思っています。その後、NSTimerを取り除くことができました。

4

1 に答える 1

1

NSCurrentLocaleDidChangeNotification を監視できるようです。

https://developer.apple.com/library/mac/#documentation/Cocoa/Reference/Foundation/Classes/NSLocale_Class/Reference/Reference.html#//apple_ref/doc/uid/TP30001224-DontLinkElementID_1を参照してください。

于 2012-07-02T04:42:04.583 に答える