2

私はよく理解できないという奇妙な問題を抱えています。私は、Interface Builder にはあまり興味がありません。私がやろうとしていることは単純なはずですが、何らかの理由で機能していません。

インターフェイスビルダーには、単純な NSTextField を含む設定ウィンドウがあります。コントローラー キー「values」とモデル キー「test」を使用して、共有ユーザー デフォルト コントローラーにバインドする値を設定しました。アプリをビルド/実行して設定ウィンドウを開き、テキスト フィールドにランダムな値を入力して、ウィンドウを閉じます。Command-Q アプリ。次に、シェルでアプリの「デフォルト読み取りcom.xxx.yyy」を実行すると、キーと値がどこにも見つかりません。そうは言っても、次にアプリを起動して値を変更すると、ウィンドウを閉じる前に NSTextField のフォーカスをオフに切り替えた場合にのみ機能するようです。

NSUserDefaults のドキュメントには、共有コントローラーが値をすぐに保存すると書かれていますが、ここで何かばかげたことを見逃していますか?

助けてくれてありがとう。

4

1 に答える 1

8

他の人が役に立つと思う場合に備えて、尋ねられてから長い間これに答えています。

バインドしたテキストフィールドに「継続的に値を更新する」を設定する必要があるようです。それ以外の場合、値は送信されるだけであり、したがって、編集を「終了」する何かが発生した場合にのみ設定が更新されます。これは通常、Return キーを押すことによってトリガーされ、ウィンドウからフォーカスを移動したときにも発生する可能性があります (ただし、自分のアプリケーションの 1 つでこれをテストしたところ、編集がコミットされなかったようです)。

于 2011-03-09T14:34:20.517 に答える