2013-08-16 25 views
3

确定,这里就是我想要做的:可可绑定和检查字符串内容

  • 比方说,我有一个项目,例如一个NSTextField
  • 我们还要说我们想要将其hidden值绑定到BOOL变量 - 这很容易。

现在,这里的扭曲:

  • 我想将hidden属性绑定到的(someStringVariable == "Some String"
  • 时尚检查几句话:设置元素时隐时现someStringVariable等于一些字符串。

我该如何从IB内做到这一点?它可行吗?

回答

0

你的意思是这样的?

string1=string2 ? hidden=true : hidden=false 
+0

这不提供问题的答案。要批评或要求作者澄清,请在其帖子下方留言。 –

+0

好吧,我认为那就是他想要的......任何方式,我很抱歉,我是新来的,谢谢你的解释@Igor – pablopunk

2

那么,这是基本的this questionanswered重复。但是,除了提问者以外,其他人已经对此提出了奖励,所以:

完全在IB内吗?编号

您可以绑定到字符串类型的属性,然后使用自定义值转换器将该字符串根据其与期望值相等转换为布尔值。

但是,它可能只是更容易添加属性具有字符串类型属性的类:

// Assumed to exist: 
@property (copy) NSString* someStringProperty; 

+ (NSSet*) keyPathsForValuesAffectingShouldBeHidden 
{ 
    return [NSSet setWithObject:@"someStringProperty"]; 
} 
- (BOOL) shouldBeHidden 
{ 
    return [self.someStringProperty isEqualToString:@"desired string"]; 
} 

由于此属性是真正的用户界面,而不是模型的一部分,你不妨在模型类的类别中定义它。类别本身将在控制器代码中声明和定义。

定义后,您可以绑定到shouldBeHidden属性。

+0

我认为,这应该是被接受的答案。另一种方法是使用KVO。 – ozgur