为什么使用使用 IBOutlets 而不是绑定?
IB 中的绑定似乎更简单。
IBOutlets 能做哪些绑定不能做的事情?
绑定不是插座的替代品,它们只是连接 UI 某些方面的另一种方式。也就是说,有很多事情绑定不是很有效,例如,实现NSTableViewDataSource
将允许您处理(并且您可以使用插座连接所述数据源)。
此外,您不打算通过绑定获取相关视图供控制器进行交互,但您可以将它们与插座连接起来。从某种意义上说,出口是您组织对象的方式——它们自己可能不会做太多事情,但它们提供了数据,否则您将不得不不必要地四处挖掘才能获得(筛选具有给定标签的视图的子视图不会很有趣,而且确实是浪费精力,因为您有渠道可以为您简化整个过程)。
不过,我的主要观点是,您不应该将绑定视为插座的替代品——它们不是。绑定不能代替插座,插座也不能代替绑定。绑定在一定程度上取决于插座,因此如果您愿意,您无法摆脱它们。另一方面,奥特莱斯只是在那里说明什么去哪里。所以那NSTextView
进入财产statusField
,那NSTableView
进入财产messagesTableView
。
所以,再一次,出口是组织,它们不仅仅是你用来代替绑定的东西。