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場合にのみ機能します (フィールドの入力コンテキストによって呼び出されません)。KVO をしようとするよりも、setStringValue:デリゲートになって実装したほうがよいでしょう。controlTextDidChange:

于 2013-11-09T20:49:42.983 に答える