嘿,我是mac开发新手,我想使用绑定(xcode 5.1.1)。
我想通过数组控制器的条目动态设置单选按钮的标题。我正在寻找类似于语法描述的方法,我可以如何执行它。
e.g。像value1 WHERE value2 =" bla"
如果我尝试在谷歌搜索,我总能找到以编程方式进行搜索的解决方案。
是否有一些示例向我展示了我可以在此字段中使用的语法?
下面的图片应该表明我的意思。
答案 0 :(得分:1)
回答评论中澄清的问题......
首先,绑定并不总是正确的技术。它可以简化一些事情,但它不能做任何事情,即使对于它可以做的一些事情,它也不一定使它们更简单。
单选按钮通常以NSMatrix
组织。在这种情况下,您可以绑定矩阵绑定以跟踪选择。矩阵有三个与内容相关的绑定,这可能会让人感到困惑。 “内容”绑定是基础。在某些情况下,这就足够了。但是,如果绑定的对象与矩阵的单元格应显示的值之间存在区别,则可以将“contentValues”绑定绑定为内容绑定的子路径。也就是说,它需要与内容绑定相同,可能还有其他元素添加到模型键路径的末尾。
此外,如果您希望所选对象与内容对象不同,则可以将“contentObjects”绑定到内容绑定的子路径。
例如,可能有一个数组控制器,其内容是一堆Person
个对象。矩阵content
绑定可能绑定到该数组控制器的arrangedObjects
。如果你这样离开,矩阵的单元格将从每个description
对象的Person
填充。但是,您可以将矩阵的contentValues
绑定到数组控制器arrangedObjects
,模型密钥路径fullName
。然后,将使用每个Person
对象的全名填充矩阵单元格。
如果然后将矩阵的selectedObject
绑定绑定到窗口控制器上的属性,则每次矩阵选择更改时,该属性都将设置为选定的Person
对象。如果您愿意,可以将矩阵的contentObjects
绑定绑定到数组控制器arrangedObjects
,模型关键路径uniqueID
。在这种情况下,窗口控制器属性不会设置为选定的Person
对象本身,而是设置为其uniqueID
属性。
或者,您可以将矩阵的selectedIndex
绑定绑定到控制器属性。如果使用窗口控制器,那么只需在窗口控制器上直接设置属性即可指示矩阵选择的索引。或者你可以将它绑定到数组控制器的selectedIndex
属性,在这种情况下,选择“存储”在数组控制器中。
答案 1 :(得分:0)
您需要一个不带参数的密钥路径,如key-value coding (KVC) reference.
中所述通过绑定到数组控制器的选择,如果选择集合是一个具有属性或方法“value1”的对象,则绑定运行时调用方法valueForKeyPath:@"value1"
。
NSObject protocol有performSelector:withObject
,但KVC protocol或NSKeyValueBindingCreation protocol
valueForKeyPath:withObject
。
那就是说,registering dependent keypaths可以提供一些等效的行为......
+ (NSSet*) keyPathsForValuesAffectingValue1
{
return [NSSet setWithObjects:@"value2",nil];
}
...这将确保任何时间值2更改,重新评估对value1的绑定。