为什么绑定到NSDatePicker的属性值并不总是反映控件显示的内容?如果绑定属性得到的值与日期选择器显示的值不同,至少有2种情况:
nil (如果用户不与选择器交互)。如果对目标/行动不支持这种基本行为,那么使用绑定的原因是什么?我对可可装订很陌生,所以我可能遗漏了什么。
更新:
发布于 2014-04-30 17:55:14
为什么绑定到NSDatePicker的属性值并不总是反映控件显示的内容?
在模式中,NSDatePicker是视图,ViewController是控制器,NSDate属性是模型。
通过控制器将视图绑定到模型。不是相反的。
当通过控制器将视图绑定到模型时,视图将开始反映模型。如果您与视图交互(例如,更改日期),则更改将应用于模型。
初值日期选择器显示它的初始日期(在IB中设置),但是绑定属性返回零(如果用户不与选择器交互)。
NSDatePicker显示任何默认值,因为模型没有提供NSDate对象。NSDatePicker应该而不是在没有用户交互的情况下更改模型。
选择器中的Min值更改日期,但绑定属性仍然返回旧值(用户在设置min值之前设置的值)。
NSDatePicker只是在可接受的值范围内显示一个默认值,因为模型没有提供NSDate对象。
如果对目标/行动不支持这种基本行为,那么使用绑定的原因是什么?
目标/操作只是绑定自动完成的工作的一部分。如果没有绑定,您将在控制器(目标)中创建一个操作方法来处理用户交互(例如,用户更改日期)。在action方法中,您将更改模型对象。此外,在加载视图时,您将将视图与模型中的视图同步。绑定消除了许多这类代码。
发布于 2014-05-19 11:40:11
NSDatePicker无法显示空日期。如果不设置dateValue或将值绑定为零,则控件仍将显示日期值;它类似于12/02/1982。
无法显示空日期,因此指示为零绑定是令人恼火的。
下面的NSDatePicker子类可以显示空日期,并表示这样的零绑定。
https://github.com/ThesaurusSoftware/TFDatePicker
运行TFDatePickerTest目标以查看它如何执行。
https://stackoverflow.com/questions/23089472
复制相似问题