// Copyright 2004-present Facebook. All Rights Reserved. #import #import "RCTBridge.h" #import "RCTBridgeModule.h" #import "RCTInvalidating.h" #import "RCTViewManager.h" @class RCTRootView; @protocol RCTScrollableProtocol; /** * The RCTUIManager is the module responsible for updating the view hierarchy. */ @interface RCTUIManager : NSObject @property (nonatomic, weak) id mainScrollView; /** * Allows native environment code to respond to "the main scroll view" events. * see `RCTUIManager`'s `setMainScrollViewTag`. */ @property (nonatomic, readwrite, weak) id nativeMainScrollDelegate; /** * Register a root view with the RCTUIManager. Theoretically, a single manager * can support multiple root views, however this feature is not currently exposed * and may eventually be removed. */ - (void)registerRootView:(RCTRootView *)rootView; /** * Schedule a block to be executed on the UI thread. Useful if you need to execute * view logic after all currently queued view updates have completed. */ - (void)addUIBlock:(RCTViewManagerUIBlock)block; /** * The view that is currently first responder, according to the JS context. */ + (UIView *)JSResponder; @end /** * This category makes the current RCTUIManager instance available via the * RCTBridge, which is useful for RCTBridgeModules or RCTViewManagers that * need to access the RCTUIManager. */ @interface RCTBridge (RCTUIManager) @property (nonatomic, readonly) RCTUIManager *uiManager; @end