Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/image-processing/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Objective c NSDatePicker绑定_Objective C_Macos_Cocoa_Cocoa Bindings - Fatal编程技术网

Objective c NSDatePicker绑定

Objective c NSDatePicker绑定,objective-c,macos,cocoa,cocoa-bindings,Objective C,Macos,Cocoa,Cocoa Bindings,为什么绑定到NSDatePicker的属性值并不总是反映控件显示的内容?当“我的绑定”属性的值与日期选择器显示的值不同时,至少有两种情况: 初始值。日期选择器显示其初始日期(在IB中设置),但绑定属性返回nil(如果用户未与选择器交互) 最小值更改选择器中的日期,但绑定属性仍返回旧值(用户在设置最小值之前设置的值) 如果目标/操作不支持这种基本行为,那么对其使用绑定的原因是什么?我是可可装订新手,所以可能我遗漏了什么 更新: 为什么绑定到NSDatePicker的属性值并不总是反映控件显示的

为什么绑定到
NSDatePicker
的属性值并不总是反映控件显示的内容?当“我的绑定”属性的值与日期选择器显示的值不同时,至少有两种情况:

  • 初始值。日期选择器显示其初始日期(在IB中设置),但绑定属性返回
    nil
    (如果用户未与选择器交互)
  • 最小值更改选择器中的日期,但绑定属性仍返回旧值(用户在设置最小值之前设置的值)
  • 如果目标/操作不支持这种基本行为,那么对其使用绑定的原因是什么?我是可可装订新手,所以可能我遗漏了什么


    更新:

    为什么绑定到NSDatePicker的属性值并不总是反映控件显示的内容

    在模型视图控制器模式中,
    NSDatePicker
    是视图,
    ViewController
    是控制器,
    NSDate
    属性是模型

    可以通过控制器将视图绑定到模型。而不是相反

    通过控制器将视图绑定到模型时,视图将开始反映模型。如果与视图交互(例如更改日期),更改将应用于模型

    初始值。日期选择器显示其初始日期(在IB中设置),但绑定属性返回nil(如果用户不与选择器交互)

    NSDatePicker
    显示任何默认值,因为模型未提供NSDate对象
    NSDatePicker
    在没有用户交互的情况下更改模型

    最小值更改选择器中的日期,但绑定属性仍返回旧值(用户在设置最小值之前设置的值)

    NSDatePicker
    仅显示可接受值范围内的默认值,因为模型未提供NSDate对象

    如果目标/操作不支持这种基本行为,那么对其使用绑定的原因是什么

    目标/操作只是绑定自动执行的一部分。如果没有绑定,您将在控制器(目标)中创建一个操作方法来处理用户交互(例如,用户更改日期)。在动作方法中,您将更改模型对象。此外,在加载视图时,可以将视图与模型中的视图同步。绑定消除了大量此类代码

    为什么绑定到NSDatePicker的属性值并不总是反映控件显示的内容

    在模型视图控制器模式中,
    NSDatePicker
    是视图,
    ViewController
    是控制器,
    NSDate
    属性是模型

    可以通过控制器将视图绑定到模型。而不是相反

    通过控制器将视图绑定到模型时,视图将开始反映模型。如果与视图交互(例如更改日期),更改将应用于模型

    初始值。日期选择器显示其初始日期(在IB中设置),但绑定属性返回nil(如果用户不与选择器交互)

    NSDatePicker
    显示任何默认值,因为模型未提供NSDate对象
    NSDatePicker
    在没有用户交互的情况下更改模型

    最小值更改选择器中的日期,但绑定属性仍返回旧值(用户在设置最小值之前设置的值)

    NSDatePicker
    仅显示可接受值范围内的默认值,因为模型未提供NSDate对象

    如果目标/操作不支持这种基本行为,那么对其使用绑定的原因是什么


    目标/操作只是绑定自动执行的一部分。如果没有绑定,您将在控制器(目标)中创建一个操作方法来处理用户交互(例如,用户更改日期)。在动作方法中,您将更改模型对象。此外,在加载视图时,可以将视图与模型中的视图同步。绑定消除了大量此类代码。

    NSDatePicker不能显示空日期。如果未设置dateValue或将该值绑定为nil,则控件仍显示日期值;像1982年2月12日

    不能显示一个空的日期,从而表明无绑定是令人恼火的

    以下NSDatePicker子类可以显示空日期,并表示nil绑定


    运行TFDatePickerTest目标以查看其执行情况。

    NSDatePicker无法显示空日期。如果未设置dateValue或将该值绑定为nil,则控件仍显示日期值;像1982年2月12日

    不能显示一个空的日期,从而表明无绑定是令人恼火的

    以下NSDatePicker子类可以显示空日期,并表示nil绑定


    运行TFDatePickerTest目标以查看其执行情况。

    尝试使用一些代码改进您的问题。也许这些链接对你有帮助:附加的示例项目。我来看看。同时看看这些链接:“当它改变时,你仍然需要调用-dateValue来获取日期。”试着用一些代码来改进你的问题。也许这些链接对你有帮助:附加的示例项目。我来看看。同时看看这些链接:“当它发生变化时,您仍然需要调用-dateValue来获取日期。”此外,初始的
    NSDatePicker
    值可以直接在内部设置为ivar,而不需要通过setter,因此不会触发KVO通知或绑定。此外,初始的
    NSDatePicker
    值可以在内部直接设置为ivar,而不通过setter,因此不会触发KVO通知或绑定。