好的,这就是我想要做的事情:
NSTextField
hidden
值绑定到BOOL
变量 - 这很容易。现在,这是扭曲:
hidden
)someStringVariable == "Some String"
属性绑定到支票上
someStringVariable
等于某个字符串时,将元素设置为隐藏。我如何从IB内部做到这一点?它可行吗?
答案 0 :(得分:2)
嗯,这基本上是我this question的answered的副本。但是除了提问者以外的其他人已经给了这个奖励,所以:
完全在IB内?否。
您可以绑定到字符串类型的属性,然后使用自定义值转换器将该字符串根据其与所需值的相等性转换为布尔值。
但是,将属性添加到具有string-typed属性的类可能更容易:
// Assumed to exist:
@property (copy) NSString* someStringProperty;
+ (NSSet*) keyPathsForValuesAffectingShouldBeHidden
{
return [NSSet setWithObject:@"someStringProperty"];
}
- (BOOL) shouldBeHidden
{
return [self.someStringProperty isEqualToString:@"desired string"];
}
由于此属性实际上是UI的一部分而不是模型,因此您可能希望在模型类的类别中定义它。类别本身将在控制器代码中声明和定义。
一旦定义,您就可以绑定到shouldBeHidden
属性。
答案 1 :(得分:0)
你的意思是这样的吗?
string1=string2 ? hidden=true : hidden=false