为什么要绑定NSProgressIndicator的值?

时间:2011-02-04 13:51:01

标签: cocoa cocoa-bindings

将NSProgressIndicator的值绑定到控制器有什么意义?除了在启动时,似乎从未向控制器询问该值。移动NSProgressIndicator的唯一方法似乎是通过发送#increaseBy:来绕过我的绑定。那么,为什么我会绑定?!

1 个答案:

答案 0 :(得分:5)

如果您的UI绑定值未更新,则意味着您要么修改了绑定,要么您的控制器代码没有以符合键值观察的方式修改绑定值。最常见的问题是fooIvar = val而不是[self setFooIvar:val]self.fooIvar = val

Apple对您问题的回答:

  

[怎么做]以编程方式更改模型属性的值不会反映在用户界面中

     

如果以编程方式对模型值所做的更改未反映在用户界面中,则通常表示模型对象不符合属性的键值观察,或者您正在以某种方式修改值绕过了键值观察。你应该确保:

     
      
  • 模型类启用了自动键值观察,或实现了属性的手动键值观察。
  •   
  • 您正在使用访问器方法或使用符合键值编码的方法更改值。直接更改实例变量的值不会提供键值观察更改通知。
  •   
  • 如果您的模型属性是一个集合,那么您将以符合键值观察的方式修改内容。有关详细信息,请参阅“My collection controller isn’t displaying the current data”。
  •   

对于该答案并回答其他常见问题,请参阅"Troubleshooting Cocoa Bindings."

你也应该看看the examples provided by mmalc.他们是宝贵的资源。