@@ -187,6 +187,7 @@ - (instancetype)initWithFrame:(CGRect)frame
187
187
self.scrollEnabled = YES ;
188
188
self.hasHorizontalScroller = YES ;
189
189
self.hasVerticalScroller = YES ;
190
+ self.autohidesScrollers = YES ;
190
191
self.panGestureRecognizer = [[NSPanGestureRecognizer alloc ] initWithTarget: self action: @selector (handleCustomPan: )];
191
192
#else // ]TODO(macOS ISS#2323203)
192
193
[self .panGestureRecognizer addTarget: self action: @selector (handleCustomPan: )];
@@ -756,19 +757,28 @@ - (void)updateClippedSubviews
756
757
- (void )viewDidMoveToWindow
757
758
{
758
759
[super viewDidMoveToWindow ];
759
-
760
+
761
+ NSNotificationCenter *defaultCenter = [NSNotificationCenter defaultCenter ];
760
762
if ([self window ] == nil ) {
761
763
// Unregister for bounds change notifications
762
- [[NSNotificationCenter defaultCenter ] removeObserver: self name: NSViewBoundsDidChangeNotification object: _scrollView.contentView];
763
- }
764
- else {
764
+ [defaultCenter removeObserver: self
765
+ name: NSViewBoundsDidChangeNotification
766
+ object: _scrollView.contentView];
767
+ [defaultCenter removeObserver: self
768
+ name: NSPreferredScrollerStyleDidChangeNotification
769
+ object: nil ];
770
+ } else {
765
771
// Register for bounds change notifications so we can track scrolling
766
- [[NSNotificationCenter defaultCenter ] addObserver: self
767
- selector: @selector (scrollViewDocumentViewBoundsDidChange: )
768
- name: NSViewBoundsDidChangeNotification
769
- object: _scrollView.contentView]; // NSClipView
772
+ [defaultCenter addObserver: self
773
+ selector: @selector (scrollViewDocumentViewBoundsDidChange: )
774
+ name: NSViewBoundsDidChangeNotification
775
+ object: _scrollView.contentView]; // NSClipView
776
+ [defaultCenter addObserver: self
777
+ selector: @selector (preferredScrollerStyleDidChange: )
778
+ name: NSPreferredScrollerStyleDidChangeNotification
779
+ object: nil ];
770
780
}
771
-
781
+
772
782
_notifyDidScroll = ([self window ] != nil );
773
783
}
774
784
#endif // ]TODO(macOS ISS#2323203)
@@ -1426,6 +1436,19 @@ - (void)keyDown:(UIEvent*)theEvent
1426
1436
}
1427
1437
}
1428
1438
}
1439
+
1440
+ static NSString *RCTStringForScrollerStyle (NSScrollerStyle scrollerStyle) {
1441
+ switch (scrollerStyle) {
1442
+ case NSScrollerStyleLegacy:
1443
+ return @" legacy" ;
1444
+ case NSScrollerStyleOverlay:
1445
+ return @" overlay" ;
1446
+ }
1447
+ }
1448
+
1449
+ - (void )preferredScrollerStyleDidChange : (__unused NSNotification *)notification {
1450
+ RCT_SEND_SCROLL_EVENT (onPreferredScrollerStyleDidChange, (@{ @" preferredScrollerStyle" : RCTStringForScrollerStyle ([NSScroller preferredScrollerStyle ])}));
1451
+ }
1429
1452
#endif // ]TODO(macOS ISS#2323203)
1430
1453
1431
1454
// Note: setting several properties of UIScrollView has the effect of
0 commit comments