我不知道您的问题的背景(即您要做什么),但解决问题的另一种方法可能涉及使用键值观察来观察文本视图背景颜色的变化,并采取相应的行动。
这里有一些文档可以帮助您开始使用 KVO。
在代码中:
static void * kBackgroundColorCtx = &kBackgroundColorCtx;
[self.myTextView addObserver:self
forKeyPath:@"backgroundColor"
options:NSKeyValueObservingOptionOld
context:kBackgroundColorCtx];
然后,在你的视图控制器中实现这个:
- (void)observeValueForKeyPath:(NSString *)keyPath ofObject:(id)object change:(NSDictionary *)change context:(void *)context {
if (context == kBackgroundColorCtx) {
NSLog(@"Background color changed from %@ to %@",
[change objectForKey:NSKeyValueChangeOldKey],
self.myTextView.backgroundColor);
} else {
// Not interested in this, pass to superclass
[super observeValueForKeyPath:keyPath ofObject:object change:change context:context];
}
}