在本質上,這是我在NSTextFieldCell的一個子類代碼:NSCell -stringValue調用-setStringValue?
- (void)setStringValue:(NSString *)aString {
[super setStringValue:aString];
[self doSomething];
}
- (void)doSomething {
NSLog(@"%@", [self stringValue]);
}
從本質上講,我試圖讓我的子類通知的字符串值的變化,而當值的變化,我想NSCell的子類能夠使用該新值進行操作(使用-attributedStringValue會更好,因爲我想將它緩存爲特殊繪圖)。問題是,出於某種原因,調用 - (NSString *)stringValue以某種方式導致調用 - (void)setStringValue結果變成...
...一個無限循環。有人能夠啓發我 - 可能的解決方法?
你是怎麼調用stringValue的?我試過你的代碼,並沒有得到任何循環,它似乎工作正常。 – rdelmar 2012-04-08 23:34:10
@rdelmar我正在使用stringValue的默認實現。也許我錯過了代碼中顯而易見的東西,但我只是寫了一個NSTextfieldCell的子類,它恰好位於NSTableView內(NSTextField綁定到TableCellView) – Vervious 2012-04-09 00:18:57