Я искал несколько способов управления Quartz Composition, который загружается как подслой пользовательского представления, унаследованного от NSView.
NSString * compositionPath = [[NSBundle mainBundle] pathForResource:@"Test" ofType:@"qtz"];
QCCompositionLayer *myQCCompositionLayer = [[QCCompositionLayer compositionLayerWithFile:compositionPath] retain];
// Borderless window with custom view
[[self.contentView layer] addSublayer: myQCCompositionLayer];
Вручную я обнаружил, что следующий код работает для установки опубликованных значений ввода:
[myQCCompositionLayer setValue:@"123" forInputKey:@"published_text_input"];
Итак, я пытался найти способ просмотреть опубликованные выходные значения, и мне было интересно, должен ли наблюдатель сделать это. Написано примерно так:
[myQCCompositionLayer addObserver:self forKeyPath:@"published_output_value" options:0 context:nil];
И это в том же классе:
- (void) observeValueForKeyPath:(NSString*)keyPath ofObject:(id)object
change:(NSDictionary*)change context:(void*)context
{
NSLog(@"123");
}
Но это не работает. Возможно, неверный путь к ключу или этот код вообще не должен работать:)
Так есть ли способы наблюдать опубликованные значения моей композиции?
Спасибо за помощь.