Repository navigation
UIKit MacCatalyst xcode27.3 b1
Alex Soto edited this page Nov 4, 2026
·
1 revision
#UIKit.framework
diff -ruN /Applications/Xcode_27.2.0.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/iOSSupport/System/Library/Frameworks/UIKit.framework/Headers/UINavigationController.h /Applications/Xcode_27.3.0-beta1.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/iOSSupport/System/Library/Frameworks/UIKit.framework/Headers/UINavigationController.h
--- /Applications/Xcode_27.2.0.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/iOSSupport/System/Library/Frameworks/UIKit.framework/Headers/UINavigationController.h 2026-10-14 06:23:19
+++ /Applications/Xcode_27.3.0-beta1.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/iOSSupport/System/Library/Frameworks/UIKit.framework/Headers/UINavigationController.h 2026-11-04 09:32:11
@@ -38,11 +38,34 @@
UIKIT_EXTERN const CGFloat UINavigationControllerHideShowBarDuration API_UNAVAILABLE(watchos);
+/// Whether this navigation controller acts as a bar container, reading the bar
+/// content of its child view controller and rendering that content in the
+/// navigation controller's own bar.
+///
+/// For example, if there is a split view controller where one of the columns is a
+/// view controller with multiple child `UINavigationController`s, set
+/// `barContainerBehavior` to `.local` on all the children so that each one
+/// renders its own bar, instead of their toolbar content being rendered in a
+/// single toolbar managed by the split view controller.
+///
+/// Defaults to ``.automatic``.
+typedef NS_ENUM(NSInteger, UIBarContainerBehavior) {
+ /// The system decides whether this navigation controller renders the
+ /// bar, or whether its bar content should be integrated into a single
+ /// bar in a parent container view controller, like a split view controller.
+ ///
+ /// By default, the system allows integration in contexts where it is supported.
+ UIBarContainerBehaviorAutomatic,
+ /// This navigation controller reads the bar content of its child view
+ /// controllers and always renders a distinct, local bar.
+ UIBarContainerBehaviorLocal API_AVAILABLE(ios(27.3)) API_UNAVAILABLE(visionos) API_UNAVAILABLE(watchos, tvos),
+} API_AVAILABLE(ios(27.3), tvos(27.3), visionos(27.3)) API_UNAVAILABLE(watchos);
+
@class UIView, UINavigationBar, UINavigationItem, UIToolbar;
@protocol UINavigationControllerDelegate;
-UIKIT_EXTERN API_AVAILABLE(ios(2.0)) API_UNAVAILABLE(watchos) NS_SWIFT_UI_ACTOR
+UIKIT_EXTERN API_AVAILABLE(ios(2.0), tvos(9.0)) API_UNAVAILABLE(watchos) NS_SWIFT_UI_ACTOR
@interface UINavigationController : UIViewController
@@ -79,6 +102,19 @@
- (void)setToolbarHidden:(BOOL)hidden animated:(BOOL)animated API_AVAILABLE(ios(3.0)) API_UNAVAILABLE(tvos); // Hide or show the toolbar at the bottom of the screen. If animated, it will transition vertically using UINavigationControllerHideShowBarDuration.
@property(null_resettable,nonatomic,readonly) UIToolbar *toolbar API_AVAILABLE(ios(3.0)) API_UNAVAILABLE(tvos); // For use when presenting an action sheet.
+/// Whether this navigation controller acts as a bar container, reading the bar
+/// content of its child view controller and rendering that content in the
+/// navigation controller's own bar.
+///
+/// For example, if there is a split view controller where one of the columns is a
+/// view controller with multiple child `UINavigationController`s, set
+/// `barContainerBehavior` to `.local` on all the children so that each one
+/// renders its own toolbar, instead of their toolbar content being rendered in a
+/// single toolbar managed by the split view controller.
+///
+/// Defaults to ``UIBarContainerBehaviorAutomatic``.
+@property (nonatomic) UIBarContainerBehavior barContainerBehavior API_AVAILABLE(ios(27.3), tvos(27.3), visionos(27.3)) API_UNAVAILABLE(watchos);
+
@property(nullable, nonatomic, weak) id<UINavigationControllerDelegate> delegate;
/// The gesture recognizer that handles interactively popping the top view controller off the navigation stack
@@ -124,7 +160,7 @@
@protocol UIViewControllerInteractiveTransitioning;
@protocol UIViewControllerAnimatedTransitioning;
-API_UNAVAILABLE(watchos) NS_SWIFT_UI_ACTOR
+UIKIT_EXTERN API_AVAILABLE(ios(2.0), tvos(9.0)) API_UNAVAILABLE(watchos) NS_SWIFT_UI_ACTOR
@protocol UINavigationControllerDelegate <NSObject>
@optional
diff -ruN /Applications/Xcode_27.2.0.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/iOSSupport/System/Library/Frameworks/UIKit.framework/Headers/UINavigationItem.h /Applications/Xcode_27.3.0-beta1.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/iOSSupport/System/Library/Frameworks/UIKit.framework/Headers/UINavigationItem.h
--- /Applications/Xcode_27.2.0.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/iOSSupport/System/Library/Frameworks/UIKit.framework/Headers/UINavigationItem.h 2026-10-14 06:28:17
+++ /Applications/Xcode_27.3.0-beta1.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/iOSSupport/System/Library/Frameworks/UIKit.framework/Headers/UINavigationItem.h 2026-11-04 09:32:11
@@ -328,7 +328,7 @@
@end
-@interface UINavigationItem (/*VerticalBar*/)
+@interface UINavigationItem (VerticalBar)
/// When the tab bar and navigation/toolbar items are both rendered together
/// in the vertical bar, this property controls which items compress first.
diff -ruN /Applications/Xcode_27.2.0.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/iOSSupport/System/Library/Frameworks/UIKit.framework/Headers/UIPasteboard.h /Applications/Xcode_27.3.0-beta1.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/iOSSupport/System/Library/Frameworks/UIKit.framework/Headers/UIPasteboard.h
--- /Applications/Xcode_27.2.0.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/iOSSupport/System/Library/Frameworks/UIKit.framework/Headers/UIPasteboard.h 2026-10-06 05:39:30
+++ /Applications/Xcode_27.3.0-beta1.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/iOSSupport/System/Library/Frameworks/UIKit.framework/Headers/UIPasteboard.h 2026-11-04 09:32:11
@@ -68,9 +68,12 @@
- (void)setItemProviders:(NSArray<NSItemProvider *> *)itemProviders localOnly:(BOOL)localOnly expirationDate:(NSDate * _Nullable)expirationDate API_AVAILABLE(ios(11.0)) API_UNAVAILABLE(watchos, tvos);
+- (void)setItemProviders:(NSArray<NSItemProvider *> *)itemProviders localOnly:(BOOL)localOnly expirationDate:(NSDate * _Nullable)expirationDate concealed:(BOOL)concealed API_AVAILABLE(ios(27.3)) API_UNAVAILABLE(watchos, tvos);
+
// Automatically creates item providers wrapping the objects passed in.
- (void)setObjects:(NSArray<id<NSItemProviderWriting>> *)objects API_AVAILABLE(ios(11.0)) API_UNAVAILABLE(watchos, tvos);
- (void)setObjects:(NSArray<id<NSItemProviderWriting>> *)objects localOnly:(BOOL)localOnly expirationDate:(NSDate * _Nullable)expirationDate API_AVAILABLE(ios(11.0)) API_UNAVAILABLE(watchos, tvos);
+- (void)setObjects:(NSArray<id<NSItemProviderWriting>> *)objects localOnly:(BOOL)localOnly expirationDate:(NSDate * _Nullable)expirationDate concealed:(BOOL)concealed API_AVAILABLE(ios(27.3)) API_UNAVAILABLE(watchos, tvos);
// First item
@@ -102,6 +105,7 @@
UIKIT_EXTERN UIPasteboardOption const UIPasteboardOptionExpirationDate API_UNAVAILABLE(tvos) API_UNAVAILABLE(watchos) API_AVAILABLE(ios(10.0)) NS_SWIFT_NAME(UIPasteboardOption.expirationDate); // Value: NSDate.
UIKIT_EXTERN UIPasteboardOption const UIPasteboardOptionLocalOnly API_UNAVAILABLE(tvos) API_UNAVAILABLE(watchos) API_AVAILABLE(ios(10.0)) NS_SWIFT_NAME(UIPasteboardOption.localOnly); // Value: NSNumber, boolean.
+UIKIT_EXTERN UIPasteboardOption const UIPasteboardOptionConcealed API_UNAVAILABLE(tvos) API_UNAVAILABLE(watchos) API_AVAILABLE(ios(27.3)) NS_SWIFT_NAME(UIPasteboardOption.concealed); // Value: NSNumber, boolean.
- (void)setItems:(NSArray<NSDictionary<NSString *, id> *> *)items options:(NSDictionary<UIPasteboardOption, id> *)options API_AVAILABLE(ios(10.0));
diff -ruN /Applications/Xcode_27.2.0.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/iOSSupport/System/Library/Frameworks/UIKit.framework/Headers/UIView.h /Applications/Xcode_27.3.0-beta1.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/iOSSupport/System/Library/Frameworks/UIKit.framework/Headers/UIView.h
--- /Applications/Xcode_27.2.0.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/iOSSupport/System/Library/Frameworks/UIKit.framework/Headers/UIView.h 2026-10-06 05:46:53
+++ /Applications/Xcode_27.3.0-beta1.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/iOSSupport/System/Library/Frameworks/UIKit.framework/Headers/UIView.h 2026-11-04 09:32:11
@@ -710,7 +710,6 @@
@end
-
@interface UIView (UIContentSizeCategoryLimit)
/// Specify content size category limits. Setting one or both of these properties will limit the
@@ -748,7 +747,6 @@
- (void)updateTraitsIfNeeded API_AVAILABLE(ios(17.0), tvos(17.0)) API_UNAVAILABLE(watchos);
@end
-
API_AVAILABLE(ios(26.0), tvos(26.0), visionos(26.0)) API_UNAVAILABLE(watchos)
@interface UIView (LayoutRegions)
diff -ruN /Applications/Xcode_27.2.0.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/iOSSupport/System/Library/Frameworks/UIKit.framework/Headers/UIViewController.h /Applications/Xcode_27.3.0-beta1.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/iOSSupport/System/Library/Frameworks/UIKit.framework/Headers/UIViewController.h
--- /Applications/Xcode_27.2.0.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/iOSSupport/System/Library/Frameworks/UIKit.framework/Headers/UIViewController.h 2026-10-16 06:32:39
+++ /Applications/Xcode_27.3.0-beta1.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/iOSSupport/System/Library/Frameworks/UIKit.framework/Headers/UIViewController.h 2026-11-04 09:32:11
@@ -707,7 +707,26 @@
@end
+@interface UIViewController()
+/// Indicates that the view controller prefers to disable direct-touch system gestures that land on its scene.
+///
+/// - Note: This property indicates a preference; the system may or may not honor it.
+///
+/// Defaults to `false`.
+@property (nonatomic, readonly) BOOL prefersDirectTouchSystemGesturesDisabled API_AVAILABLE(macCatalyst(27.3)) API_UNAVAILABLE(ios, tvos, watchos, visionos);
+
+/// Indicates that the view controller has changed its preference to disable direct-touch system gestures,
+/// or that the child view controller for the preference has changed.
+- (void)setNeedsUpdateOfDirectTouchSystemGesturesDisabled API_AVAILABLE(macCatalyst(27.3)) API_UNAVAILABLE(ios, tvos, watchos, visionos);
+
+/// A child view controller to query for the preference to disable direct-touch system gestures.
+///
+/// Return `nil` to use the receiver as the view controller to query. Defaults to `nil`.
+@property (nonatomic, readonly, strong, nullable) UIViewController *childViewControllerForDirectTouchSystemGesturesDisabled NS_SWIFT_NAME(UIViewController.childForDirectTouchSystemGesturesDisabled) API_AVAILABLE(macCatalyst(27.3)) API_UNAVAILABLE(ios, tvos, watchos, visionos);
+
+@end
+
@interface UIViewController ()
/// Setting a content unavailable configuration replaces the existing content unavailable view of the view controller with a new content unavailable view instance from the configuration,
@@ -760,6 +779,46 @@
@end
+@protocol UIPreviewActionItem;
+
+@interface UIViewController ()
+
+@property(nonatomic, readonly) NSArray <id <UIPreviewActionItem>> *previewActionItems API_DEPRECATED("UIViewControllerPreviewing is deprecated. Please use UIContextMenuInteraction.", ios(9.0, 13.0)) API_UNAVAILABLE(visionos, watchos);
+
+@end
+
+API_AVAILABLE(ios(17.0), tvos(17.0)) API_UNAVAILABLE(watchos)
+@interface UIViewController () <UITraitChangeObservable>
+
+@property (nonatomic, readonly) id<UITraitOverrides> traitOverrides API_AVAILABLE(ios(17.0), tvos(17.0)) API_UNAVAILABLE(watchos);
+
+/// Forces an immediate trait update for this view controller and its view, including any view
+/// controllers and views in this subtree. Any trait change callbacks are sent synchronously.
+- (void)updateTraitsIfNeeded API_AVAILABLE(ios(17.0), tvos(17.0)) API_UNAVAILABLE(watchos);
+
+@end
+
+typedef NS_ENUM(NSInteger, UIContainerBackgroundStyle) {
+ UIContainerBackgroundStyleAutomatic,
+ UIContainerBackgroundStyleGlass,
+ UIContainerBackgroundStyleHidden
+} API_AVAILABLE(visionos(1.0)) API_UNAVAILABLE(ios, watchos, tvos);
+
+@interface UIViewController ()
+
+// Indicates the view controller's preference to be displayed on top of a background.
+// The default value is automatic.
+@property (nonatomic, readonly) UIContainerBackgroundStyle preferredContainerBackgroundStyle API_AVAILABLE(visionos(1.0)) API_UNAVAILABLE(ios, watchos, tvos);
+
+// Override this on a custom container view controller to delegate the preference to a child
+// view controller.
+@property (nonatomic, nullable, readonly) UIViewController *childViewControllerForPreferredContainerBackgroundStyle API_AVAILABLE(visionos(1.0)) API_UNAVAILABLE(ios, watchos, tvos);
+
+// Needs to be called when `preferredContainerBackgroundStyle` changes.
+- (void)setNeedsUpdateOfPreferredContainerBackgroundStyle API_AVAILABLE(visionos(1.0)) API_UNAVAILABLE(ios, watchos, tvos);
+
+@end
+
/// A behavior that determines whether the vertical bar is used.
///
/// Return this type from
@@ -818,46 +877,6 @@
/// ``childViewControllerForPreferredVerticalBarBehavior``.
- (void)setNeedsUpdateOfVerticalBarConfiguration
API_AVAILABLE(ios(27.1), tvos(27.1), visionos(27.1)) API_UNAVAILABLE(watchos);
-
-@end
-
-@protocol UIPreviewActionItem;
-
-@interface UIViewController ()
-
-@property(nonatomic, readonly) NSArray <id <UIPreviewActionItem>> *previewActionItems API_DEPRECATED("UIViewControllerPreviewing is deprecated. Please use UIContextMenuInteraction.", ios(9.0, 13.0)) API_UNAVAILABLE(visionos, watchos);
-
-@end
-
-API_AVAILABLE(ios(17.0), tvos(17.0)) API_UNAVAILABLE(watchos)
-@interface UIViewController () <UITraitChangeObservable>
-
-@property (nonatomic, readonly) id<UITraitOverrides> traitOverrides API_AVAILABLE(ios(17.0), tvos(17.0)) API_UNAVAILABLE(watchos);
-
-/// Forces an immediate trait update for this view controller and its view, including any view
-/// controllers and views in this subtree. Any trait change callbacks are sent synchronously.
-- (void)updateTraitsIfNeeded API_AVAILABLE(ios(17.0), tvos(17.0)) API_UNAVAILABLE(watchos);
-
-@end
-
-typedef NS_ENUM(NSInteger, UIContainerBackgroundStyle) {
- UIContainerBackgroundStyleAutomatic,
- UIContainerBackgroundStyleGlass,
- UIContainerBackgroundStyleHidden
-} API_AVAILABLE(visionos(1.0)) API_UNAVAILABLE(ios, watchos, tvos);
-
-@interface UIViewController ()
-
-// Indicates the view controller's preference to be displayed on top of a background.
-// The default value is automatic.
-@property (nonatomic, readonly) UIContainerBackgroundStyle preferredContainerBackgroundStyle API_AVAILABLE(visionos(1.0)) API_UNAVAILABLE(ios, watchos, tvos);
-
-// Override this on a custom container view controller to delegate the preference to a child
-// view controller.
-@property (nonatomic, nullable, readonly) UIViewController *childViewControllerForPreferredContainerBackgroundStyle API_AVAILABLE(visionos(1.0)) API_UNAVAILABLE(ios, watchos, tvos);
-
-// Needs to be called when `preferredContainerBackgroundStyle` changes.
-- (void)setNeedsUpdateOfPreferredContainerBackgroundStyle API_AVAILABLE(visionos(1.0)) API_UNAVAILABLE(ios, watchos, tvos);
@end
diff -ruN /Applications/Xcode_27.2.0.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/iOSSupport/System/Library/Frameworks/UIKit.framework/Headers/UIViewLayoutRegion.h /Applications/Xcode_27.3.0-beta1.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/iOSSupport/System/Library/Frameworks/UIKit.framework/Headers/UIViewLayoutRegion.h
--- /Applications/Xcode_27.2.0.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/iOSSupport/System/Library/Frameworks/UIKit.framework/Headers/UIViewLayoutRegion.h 2026-10-14 06:54:11
+++ /Applications/Xcode_27.3.0-beta1.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/iOSSupport/System/Library/Frameworks/UIKit.framework/Headers/UIViewLayoutRegion.h 2026-11-04 09:32:11
@@ -33,6 +33,20 @@
/// @note Only a single edge is allowed per region.
+ (UIViewLayoutRegion *)layoutRegionForBarOnDirectionalEdge:(NSDirectionalRectEdge)edge extent:(CGFloat)extent API_AVAILABLE(ios(27.1), tvos(27.1), visionos(27.1)) API_UNAVAILABLE(watchos);
+/// Returns a bar layout region on a given edge using the
+/// default system bar extent.
+/// @note Only a single edge is allowed per region.
++ (UIViewLayoutRegion *)layoutRegionForBarOnEdge:(UIRectEdge)edge
+ API_AVAILABLE(ios(27.2), tvos(27.2), visionos(27.2)) API_UNAVAILABLE(watchos)
+ NS_REFINED_FOR_SWIFT NS_SWIFT_NAME(__layoutRegionForBar(onEdge:));
+
+/// Returns a bar layout region on a given directional edge using the
+/// default system bar extent.
+/// @note Only a single edge is allowed per region.
++ (UIViewLayoutRegion *)layoutRegionForBarOnDirectionalEdge:(NSDirectionalRectEdge)edge
+ API_AVAILABLE(ios(27.2), tvos(27.2), visionos(27.2)) API_UNAVAILABLE(watchos)
+ NS_REFINED_FOR_SWIFT NS_SWIFT_NAME(__layoutRegionForBar(onDirectionalEdge:));
+
+ (instancetype)new NS_UNAVAILABLE;
- (instancetype)init NS_UNAVAILABLE;