アプリケーションで NSUserDefaults をサブクラス化しています。これの副作用は[NSUserDefaults sharedUserDefaults]
、 を使用できないことです。独自の静的デフォルト オブジェクトを提供するクラス メソッドが必要です。これはコードの問題ではありませんが、バインディングを使用して設定 UI を接続しているため、難しいことがわかりました。
共有された NSUserDefaultsController は共有されたデフォルトを使用するので、それはありません。代わりに、ウィンドウ コントローラーに独自のデフォルト コントローラーを作成し、それに静的なデフォルト オブジェクトを提供して、それにバインディングを接続することができます。ただし、これは完全には機能しません。デフォルト オブジェクトで KVO を使用しようとしたときに、変更通知を受け取りませんでした。通常の NSUserDefaults オブジェクト (サブクラスではない) を使用してこれを再試行しましたが、KVO 通知はありませんでした。共有デフォルト オブジェクトを代用すると、KVO は私の期待どおりに機能します。
共有デフォルトを使用していないときにバインディングと KVO を機能させる方法について、誰かアイデアはありますか?