Swiftgram/submodules/AsyncDisplayKit/Source/ASResponderChainEnumerator.mm
2020-02-27 00:02:03 +04:00

46 lines
1005 B
Plaintext

//
// ASResponderChainEnumerator.mm
// Texture
//
// Copyright (c) Facebook, Inc. and its affiliates. All rights reserved.
// Changes after 4/13/2017 are: Copyright (c) Pinterest, Inc. All rights reserved.
// Licensed under Apache 2.0: http://www.apache.org/licenses/LICENSE-2.0
//
#import "ASResponderChainEnumerator.h"
#import <AsyncDisplayKit/ASAssert.h>
@implementation ASResponderChainEnumerator {
UIResponder *_currentResponder;
}
- (instancetype)initWithResponder:(UIResponder *)responder
{
ASDisplayNodeAssertMainThread();
if (self = [super init]) {
_currentResponder = responder;
}
return self;
}
#pragma mark - NSEnumerator
- (id)nextObject
{
ASDisplayNodeAssertMainThread();
id result = [_currentResponder nextResponder];
_currentResponder = result;
return result;
}
@end
@implementation UIResponder (ASResponderChainEnumerator)
- (NSEnumerator *)asdk_responderChainEnumerator
{
return [[ASResponderChainEnumerator alloc] initWithResponder:self];
}
@end