如何在使用Cocoa绑定时取消保存首选项?

如何在使用Cocoa绑定时取消保存首选项?,第1张

概述我刚刚开始搞乱绑定.我已经开始实现一个首选项对话框,将一些NSColorWell绑定到共享默认控制器.那是完美的.我的值被编码并正确保存. 但是,什么不起作用是取消对话框.如果我取消,则仍会保存这些值. 似乎我应该将取消按钮绑定到NSUserDefaultController的“恢复”,但当然如果我这样做,我不能将它绑定到“performClose”(除非有一种方法将按钮绑定到多个动作,我我不知道 我刚刚开始搞乱绑定.我已经开始实现一个首选项对话框,将一些NScolorWell绑定到共享默认控制器.那是完美的.我的值被编码并正确保存.

但是,什么不起作用是取消对话框.如果我取消,则仍会保存这些值.

似乎我应该将取消按钮绑定到NSUserDefaultController的“恢复”,但当然如果我这样做,我不能将它绑定到“performClose”(除非有一种方法将按钮绑定到多个动作,我我不知道.

我应该如何绑定取消按钮以恢复更改并关闭窗口.显然,我可以通过编写一个同时执行这两种 *** 作的方法来实现,但似乎应该可以在IB中实现.

解决方法 两件事情:

首先,按照惯例,在进行更改时立即应用Mac OS X上的首选项.首选项更改没有“取消”或“应用”(如在Windows中).有一个“默认值”按钮,它会重置首选项,但不会因为立即应用更改而取消,这并不罕见.让你的应用程序的首选项工作是有点奇怪,因为它不遵循约定.

其次,因为您通过绑定直接更改这些值(就像您使用目标/ *** 作机制一样),您不会让自己有机会退出更改.这里最好的做法是创建一个字典控制器,其内容是应用程序首选项的副本.编辑将在该字典上进行.如果用户取消,您只需丢弃字典.如果用户接受更改,您将字典中的设置复制到实际的应用程序首选项,然后将其丢弃.如果你必须“缓冲”你的应用程序设置,这是一个很好的方法,同时仍然使用Bindings将UI连接到prefs,但你仍然负责在用户接受时应用更改.

总结

以上是内存溢出为你收集整理的如何在使用Cocoa绑定时取消保存首选项?全部内容,希望文章能够帮你解决如何在使用Cocoa绑定时取消保存首选项?所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1070004.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-26
下一篇 2022-05-26

发表评论

登录后才能评论

评论列表(0条)

保存