0

我需要为 TextField1 创建 KVO,并在将 TextField1 的值传输值更改为 TextFiled2 时。我试过这样:

//.h
@property (weak) IBOutlet NSTextFieldCell *text1;
@property (weak) IBOutlet NSTextFieldCell *text2;

//.m
-(id) init
{
    self = [super init];
    if (self)
    {
        [self addObserver:self forKeyPath: @"text1" options:NSKeyValueObservingOptionOld context:nil];
    }
    return self;
}

-(void) observeValueForKeyPath:(NSString *)keyPath ofObject:(id)object change:(NSDictionary *)change context:(void *)context
{
    [self.text2 setStringValue:[self.text1 stringValue]];
}

这没用。哪里有错?

4

1 回答 1

1

就目前而言,您正在观察text1属性的变化,而不是它的变化stringValue,即使这样,它也只有在setStringValue:显式调用时才有效(字段的输入上下文不调用它)。你最好成为它的代表和实施controlTextDidChange:,而不是尝试 KVO 的东西。

于 2013-11-09T20:49:42.983 回答