但是,什么不起作用是取消对话框.如果我取消,则仍会保存这些值.
似乎我应该将取消按钮绑定到NSUserDefaultController的“恢复”,但当然如果我这样做,我不能将它绑定到“performClose”(除非有一种方法将按钮绑定到多个动作,我我不知道.
我应该如何绑定取消按钮以恢复更改并关闭窗口.显然,我可以通过编写一个同时执行这两种 *** 作的方法来实现,但似乎应该可以在IB中实现.
解决方法 两件事情:首先,按照惯例,在进行更改时立即应用Mac OS X上的首选项.首选项更改没有“取消”或“应用”(如在Windows中).有一个“默认值”按钮,它会重置首选项,但不会因为立即应用更改而取消,这并不罕见.让你的应用程序的首选项工作是有点奇怪,因为它不遵循约定.
其次,因为您通过绑定直接更改这些值(就像您使用目标/ *** 作机制一样),您不会让自己有机会退出更改.这里最好的做法是创建一个字典控制器,其内容是应用程序首选项的副本.编辑将在该字典上进行.如果用户取消,您只需丢弃字典.如果用户接受更改,您将字典中的设置复制到实际的应用程序首选项,然后将其丢弃.如果你必须“缓冲”你的应用程序设置,这是一个很好的方法,同时仍然使用Bindings将UI连接到prefs,但你仍然负责在用户接受时应用更改.
总结以上是内存溢出为你收集整理的如何在使用Cocoa绑定时取消保存首选项?全部内容,希望文章能够帮你解决如何在使用Cocoa绑定时取消保存首选项?所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)