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

提供: MonoBook
2021年1月28日 (木) 06:00時点におけるAdministrator (トーク | 投稿記録)による版 (ページの作成:「Xamarin.iOSはAddObserverが簡潔明瞭でよろしい。 <source lang="csharp"> public override void ViewDidLoad() { base.ViewDidLoad(); var nc = NSNo…」)
(差分) ← 古い版 | 最新版 (差分) | 新しい版 → (差分)
ナビゲーションに移動 検索に移動

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

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

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