Xamairn.iOSでSettingsBundleの設定変更を検知する

提供: MonoBook
ナビゲーションに移動 検索に移動

Xamarin.iOSはAddObserverが簡潔明瞭でよろしい。

public override void ViewDidLoad()
{
    base.ViewDidLoad();
    
    var nc = NSNotificationCenter.DefaultCenter;
    nc.AddObserver(NSUserDefaults.DidChangeNotification, (notify) =>
    {
        // 変更されたぞ
    });
}

テキストフィールドだと編集完了時に1回呼ばれるのではなく1文字修正されるごとに通知が飛んでくるから注意しろ。 NSUserDefaults.DidChangeNotificationでは変更有無だけを記録して、 UIApplication.DidBecomeActiveNotificatioで再読込するのがよいかもしれない。