-
Notifications
You must be signed in to change notification settings - Fork 569
UIKit iOS xcode27.0 b1
Alex Soto edited this page Jun 9, 2026
·
1 revision
#UIKit.framework
diff -ruN /Applications/Xcode_26.5.0.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/NSAttributedString.h /Applications/Xcode_27.0.0-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/NSAttributedString.h
--- /Applications/Xcode_26.5.0.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/NSAttributedString.h 2026-04-18 23:36:21
+++ /Applications/Xcode_27.0.0-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/NSAttributedString.h 2026-06-01 00:34:57
@@ -1,17 +1,16 @@
-#if (defined(USE_UIKIT_PUBLIC_HEADERS) && USE_UIKIT_PUBLIC_HEADERS) || !__has_include(<UIKitCore/NSAttributedString.h>)
#if (defined(USE_UIKIT_PUBLIC_HEADERS) && USE_UIKIT_PUBLIC_HEADERS) || !__has_include(<UIFoundation/NSAttributedString.h>)
#import <UIKit/UIKitDefines.h>
#if UIKIT_HAS_UIFOUNDATION_SYMBOLS && !TARGET_OS_OSX
-#import <UIKit/UIKitDefines.h>
-
//
// NSAttributedString.h
-// UIKit
+// Text Kit
//
-// Copyright (c) 2011-2025, Apple Inc. All rights reserved.
+// Copyright (c) 1994-2025, Apple Inc. All rights reserved.
//
#import <Foundation/NSAttributedString.h>
+#import <Foundation/NSItemProvider.h>
+#import <UIKit/UIKitDefines.h>
@class NSAttributedString;
@class NSFileWrapper;
@@ -198,7 +197,7 @@
@interface NSMutableAttributedString (NSMutableAttributedStringDocumentFormats)
// Methods replacing the receiver contents with an external document data. options specify document attributes for interpreting the document contents. NSDocumentTypeDocumentAttribute, NSCharacterEncodingDocumentAttribute, and NSDefaultAttributesDocumentAttribute are supported options key. When they are not specified, these methods will examine the data and do their best to detect the appropriate attributes. If dict is non-NULL, it will return a dictionary with various document-wide attributes accessible via NS...DocumentAttribute keys.
-- (BOOL)readFromURL:(NSURL *)url options:(NSDictionary<NSAttributedStringDocumentReadingOptionKey, id> *)opts documentAttributes:(NSDictionary<NSAttributedStringDocumentAttributeKey, id> * __nullable * __nullable)dict error:(NSError **)error API_AVAILABLE(macosx(10.5), ios(9.0), watchos(2.0), tvos(9.0));
+- (BOOL)readFromURL:(NSURL *)url options:(NSDictionary<NSAttributedStringDocumentReadingOptionKey, id> *)opts documentAttributes:(NSDictionary<NSAttributedStringDocumentAttributeKey, id> * __nullable * __nullable)dict error:(NSError **)error API_AVAILABLE(macos(10.5), ios(9.0), watchos(2.0), tvos(9.0));
- (BOOL)readFromData:(NSData *)data options:(NSDictionary<NSAttributedStringDocumentReadingOptionKey, id> *)opts documentAttributes:(NSDictionary<NSAttributedStringDocumentAttributeKey, id> * __nullable * __nullable)dict error:(NSError **)error API_AVAILABLE(macos(10.0), ios(7.0), tvos(9.0), watchos(2.0), visionos(1.0));
@end
@@ -212,25 +211,9 @@
- (BOOL)prefersRTFDInRange:(NSRange)range API_AVAILABLE(macos(15.0), ios(18.0), tvos(18.0), watchos(11.0), visionos(2.0));
@end
-NS_HEADER_AUDIT_END(nullability, sendability)
-
-#endif // UIKIT_HAS_UIFOUNDATION_SYMBOLS && !TARGET_OS_OSX
-#else
-#import <UIFoundation/NSAttributedString.h>
-#endif
-
-#import <Foundation/NSAttributedString.h>
-#import <Foundation/NSItemProvider.h>
-#import <UIKit/UIKitDefines.h>
-@class NSAttributedString;
-@class NSFileWrapper;
-@class NSURL;
-
-#if UIKIT_HAS_UIFOUNDATION_SYMBOLS && !TARGET_OS_OSX
-NS_HEADER_AUDIT_BEGIN(nullability, sendability)
-
UIKIT_EXTERN NSAttributedStringDocumentAttributeKey const NSPaperMarginDocumentAttribute API_AVAILABLE(ios(6.0), tvos(9.0), watchos(2.0), visionos(1.0)); // @"PaperMargin", NSValue containing UIEdgeInsets
+API_AVAILABLE(ios(12.0), tvos(12.0), watchos(5.0), visionos(1.0), macCatalyst(12.0))
@interface NSAttributedString (NSAttributedString_ItemProvider) <NSItemProviderReading, NSItemProviderWriting>
@end
@@ -245,15 +228,13 @@
static const NSUnderlineStyle NSUnderlinePatternDot API_DEPRECATED_WITH_REPLACEMENT("NSUnderlineStylePatternDot", macos(10.0, API_TO_BE_DEPRECATED), ios(7.0, API_TO_BE_DEPRECATED), watchos(2.0, API_TO_BE_DEPRECATED), tvos(9.0, API_TO_BE_DEPRECATED), visionos(1.0, 1.0)) = NSUnderlineStylePatternDot;
static const NSUnderlineStyle NSUnderlinePatternDash API_DEPRECATED_WITH_REPLACEMENT("NSUnderlineStylePatternDash", macos(10.0, API_TO_BE_DEPRECATED), ios(7.0, API_TO_BE_DEPRECATED), watchos(2.0, API_TO_BE_DEPRECATED), tvos(9.0, API_TO_BE_DEPRECATED), visionos(1.0, 1.0)) = NSUnderlineStylePatternDash;
static const NSUnderlineStyle NSUnderlinePatternDashDot API_DEPRECATED_WITH_REPLACEMENT("NSUnderlineStylePatternDashDot", macos(10.0, API_TO_BE_DEPRECATED), ios(7.0, API_TO_BE_DEPRECATED), watchos(2.0, API_TO_BE_DEPRECATED), tvos(9.0, API_TO_BE_DEPRECATED), visionos(1.0, 1.0)) = NSUnderlineStylePatternDashDot;
-static const NSUnderlineStyle NSUnderlinePatternDashDotDot API_DEPRECATED_WITH_REPLACEMENT("NSUnderlinePatternDashDotDot", macos(10.0, API_TO_BE_DEPRECATED), ios(7.0, API_TO_BE_DEPRECATED), watchos(2.0, API_TO_BE_DEPRECATED), tvos(9.0, API_TO_BE_DEPRECATED), visionos(1.0, 1.0)) = NSUnderlineStylePatternDashDotDot;
+static const NSUnderlineStyle NSUnderlinePatternDashDotDot API_DEPRECATED_WITH_REPLACEMENT("NSUnderlineStylePatternDashDotDot", macos(10.0, API_TO_BE_DEPRECATED), ios(7.0, API_TO_BE_DEPRECATED), watchos(2.0, API_TO_BE_DEPRECATED), tvos(9.0, API_TO_BE_DEPRECATED), visionos(1.0, 1.0)) = NSUnderlineStylePatternDashDotDot;
static const NSUnderlineStyle NSUnderlineByWord API_DEPRECATED_WITH_REPLACEMENT("NSUnderlineStyleByWord", macos(10.0, API_TO_BE_DEPRECATED), ios(7.0, API_TO_BE_DEPRECATED), watchos(2.0, API_TO_BE_DEPRECATED), tvos(9.0, API_TO_BE_DEPRECATED), visionos(1.0, 1.0)) = NSUnderlineStyleByWord;
-#if TARGET_OS_IPHONE
typedef NS_ENUM(NSInteger, NSTextWritingDirection) {
NSTextWritingDirectionEmbedding = (0 << 1),
NSTextWritingDirectionOverride = (1 << 1)
} API_DEPRECATED_WITH_REPLACEMENT("NSWritingDirectionFormatType", ios(7.0, 9.0), watchos(2.0, 2.0)) API_UNAVAILABLE(visionos) API_UNAVAILABLE(tvos);
-#endif // TARGET_OS_IPHONE
@interface NSAttributedString(NSDeprecatedKitAdditions)
- (nullable instancetype)initWithFileURL:(NSURL *)url options:(NSDictionary *)options documentAttributes:(NSDictionary* __nullable * __nullable)dict error:(NSError **)error API_DEPRECATED_WITH_REPLACEMENT("initWithURL:options:documentAttributes:error:", ios(7.0, 9.0), watchos(2.0, 2.0)) API_UNAVAILABLE(visionos) API_UNAVAILABLE(tvos);
@@ -262,12 +243,12 @@
@interface NSMutableAttributedString (NSDeprecatedKitAdditions)
- (BOOL)readFromFileURL:(NSURL *)url options:(NSDictionary *)opts documentAttributes:(NSDictionary* __nullable * __nullable)dict error:(NSError **)error API_DEPRECATED_WITH_REPLACEMENT("readFromURL:options:documentAttributes:error:", ios(7.0, 9.0), watchos(2.0, 2.0)) API_UNAVAILABLE(visionos) API_UNAVAILABLE(tvos);
@end
-
NS_HEADER_AUDIT_END(nullability, sendability)
-#elif TARGET_OS_OSX
-#import <AppKit/NSAttributedString.h>
-#endif // UIKIT_HAS_UIFOUNDATION_SYMBOLS
+#endif // UIKIT_HAS_UIFOUNDATION_SYMBOLS && !TARGET_OS_OSX
#else
-#import <UIKitCore/NSAttributedString.h>
+#import <UIFoundation/NSAttributedString.h>
#endif
+#if TARGET_OS_OSX
+#import <AppKit/NSAttributedString.h>
+#endif // TARGET_OS_OSX
diff -ruN /Applications/Xcode_26.5.0.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/NSLayoutManager.h /Applications/Xcode_27.0.0-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/NSLayoutManager.h
--- /Applications/Xcode_26.5.0.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/NSLayoutManager.h 2026-04-18 23:26:20
+++ /Applications/Xcode_27.0.0-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/NSLayoutManager.h 2026-06-01 00:35:01
@@ -1,4 +1,4 @@
-#if (defined(USE_UIKIT_PUBLIC_HEADERS) && USE_UIKIT_PUBLIC_HEADERS) || !__has_include(<UIKitCore/NSLayoutManager.h>)
+#if (defined(USE_UIKIT_PUBLIC_HEADERS) && USE_UIKIT_PUBLIC_HEADERS) || !__has_include(<UIFoundation/NSLayoutManager.h>)
//
// NSLayoutManager.h
// UIKit
@@ -9,11 +9,14 @@
#import <Foundation/NSObject.h>
#import <UIKit/NSTextStorage.h>
#import <UIKit/UIKitDefines.h>
-#import <UIKit/UIFont.h>
#import <CoreGraphics/CoreGraphics.h>
+#if __has_include(<UIKit/UIFont.h>)
+#import <UIKit/UIFont.h>
+#endif
@class NSTextContainer;
@class UIColor;
+@class UIFont;
NS_HEADER_AUDIT_BEGIN(nullability, sendability)
@@ -21,14 +24,20 @@
@protocol NSLayoutManagerDelegate;
-#if !__NSLAYOUT_MANAGER_SHARED_SECTION__
-#define __NSLAYOUT_MANAGER_SHARED_SECTION__ 1
+#if !__NSTEXT_LAYOUT_ORIENTATION_SECTION__
+#define __NSTEXT_LAYOUT_ORIENTATION_SECTION__ 1
typedef NS_ENUM(NSInteger, NSTextLayoutOrientation) {
NSTextLayoutOrientationHorizontal = 0, // Lines rendered horizontally, grow top to bottom
NSTextLayoutOrientationVertical = 1, // Lines rendered vertically, grow right to left
-} API_AVAILABLE(macosx(10.0), ios(7.0), tvos(9.0)) API_UNAVAILABLE(watchos);
-#endif // !__NSLAYOUT_MANAGER_SHARED_SECTION__
+} API_AVAILABLE(macos(10.0), ios(7.0), tvos(9.0), visionos(1.0)) API_UNAVAILABLE(watchos);
+#endif // !__NSTEXT_LAYOUT_ORIENTATION_SECTION__
+API_AVAILABLE(macos(10.0), ios(7.0), tvos(9.0), visionos(1.0)) API_UNAVAILABLE(watchos)
+@protocol NSTextLayoutOrientationProvider
+// A property describing the receiver's layout orientation. This property defines the default value for the range of string laid out in the receiver in absence of explicit NSVerticalGlyphFormAttributeName attribute. For example, when NSTextLayoutOrientationVertical, the default value for NSVerticalGlyphFormAttributeName is 1. When rendering into the receiver, the Text System assumes the coordinate system is appropriately rotated.
+@property (readonly, NS_NONATOMIC_IOSONLY) NSTextLayoutOrientation layoutOrientation API_AVAILABLE(macos(10.7), ios(7.0));
+@end
+
typedef NS_OPTIONS(NSInteger, NSGlyphProperty) {
NSGlyphPropertyNull = (1 << 0), // null glyph ignored for layout and display
NSGlyphPropertyControlCharacter = (1 << 1), // control character such as tab, attachment, etc that has special behavior associated with
@@ -45,12 +54,6 @@
NSControlCharacterActionContainerBreak = (1 << 5) // Causes container break
} API_AVAILABLE(macos(10.11), ios(7.0)) API_UNAVAILABLE(watchos);
-API_UNAVAILABLE(watchos) @protocol NSTextLayoutOrientationProvider
-// A property describing the receiver's layout orientation. This property defines the default value for the range of string laid out in the receiver in absence of explicit NSVerticalGlyphFormAttributeName attribute. For example, when NSTextLayoutOrientationVertical, the default value for NSVerticalGlyphFormAttributeName is 1. When rendering into the receiver, the Text System assumes the coordinate system is appropriately rotated.
-@property (readonly, NS_NONATOMIC_IOSONLY) NSTextLayoutOrientation layoutOrientation API_AVAILABLE(macos(10.7), ios(7.0));
-@end
-
-
UIKIT_EXTERN API_AVAILABLE(macos(10.0), ios(7.0)) API_UNAVAILABLE(watchos)
@interface NSLayoutManager : NSObject <NSSecureCoding>
@@ -379,7 +382,6 @@
#endif // UIKIT_HAS_UIFOUNDATION_SYMBOLS
NS_HEADER_AUDIT_END(nullability, sendability)
-
#else
-#import <UIKitCore/NSLayoutManager.h>
+#import <UIFoundation/NSLayoutManager.h>
#endif
diff -ruN /Applications/Xcode_26.5.0.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/NSParagraphStyle.h /Applications/Xcode_27.0.0-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/NSParagraphStyle.h
--- /Applications/Xcode_26.5.0.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/NSParagraphStyle.h 2026-04-18 23:07:53
+++ /Applications/Xcode_27.0.0-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/NSParagraphStyle.h 2026-05-29 23:05:22
@@ -1,22 +1,19 @@
-#if (defined(USE_UIKIT_PUBLIC_HEADERS) && USE_UIKIT_PUBLIC_HEADERS) || !__has_include(<UIKitCore/NSParagraphStyle.h>)
#if (defined(USE_UIKIT_PUBLIC_HEADERS) && USE_UIKIT_PUBLIC_HEADERS) || !__has_include(<UIFoundation/NSParagraphStyle.h>)
-#import <UIKit/UIKitDefines.h>
-#if UIKIT_HAS_UIFOUNDATION_SYMBOLS && !TARGET_OS_OSX
-#import <UIKit/UIKitDefines.h>
-
//
// NSParagraphStyle.h
-// UIKit
+// Text Kit
//
-// Copyright (c) 2011-2025, Apple Inc. All rights reserved.
+// Copyright (c) 1994-2025, Apple Inc. All rights reserved.
//
// NSParagraphStyle and NSMutableParagraphStyle hold paragraph style information
// NSTextTab holds information about a single tab stop
#import <Foundation/Foundation.h>
+#import <UIKit/UIKitDefines.h>
#import <UIKit/NSText.h>
@class NSTextList;
+@class NSTextBlock;
NS_HEADER_AUDIT_BEGIN(nullability, sendability)
@@ -59,6 +56,9 @@
+ (NSCharacterSet *)columnTerminatorsForLocale:(nullable NSLocale *)aLocale API_AVAILABLE(macos(10.11), ios(7.0), tvos(9.0), watchos(2.0), visionos(1.0)); // Returns the column terminators for locale. Passing nil returns an instance corresponding to +[NSLocale systemLocale]. For matching user's formatting preferences, pass +[NSLocale currentLocale]. Can be used as the value for NSTabColumnTerminatorsAttributeName to make a decimal tab stop.
+- (instancetype)initWithTextAlignment:(NSTextAlignment)alignment location:(CGFloat)loc options:(NSDictionary<NSTextTabOptionKey, id> *)options NS_DESIGNATED_INITIALIZER; // Initializes a text tab with the text alignment, location, and options. The text alignment is used to determine the position of text inside the tab column.
+
+@property (readonly, NS_NONATOMIC_IOSONLY) NSTextAlignment alignment; // Defines the alignment of tab column contents. NSTextAlignmentNatural and NSTextAlignmentJustified are resolved either NSTextAlignmentLeft or NSTextAlignmentRight based on the user's preferred language.
@property (readonly, NS_NONATOMIC_IOSONLY) CGFloat location; // Location of the tab stop inside the line fragment rect coordinate system
@property (readonly, NS_NONATOMIC_IOSONLY) NSDictionary<NSTextTabOptionKey, id> *options; // Optional configuration attributes
@end
@@ -68,6 +68,8 @@
UIKIT_EXTERN API_AVAILABLE(macos(10.0), ios(6.0), tvos(9.0), watchos(2.0), visionos(1.0))
@interface NSParagraphStyle : NSObject <NSCopying, NSMutableCopying, NSSecureCoding>
+@property (readonly, NS_NONATOMIC_IOSONLY) NSTextAlignment alignment;
+
@property (class, readonly, copy, NS_NONATOMIC_IOSONLY) NSParagraphStyle *defaultParagraphStyle; // This class property returns a shared and cached NSParagraphStyle instance with the default style settings, with same value as the result of [[NSParagraphStyle alloc] init].
+ (NSWritingDirection)defaultWritingDirectionForLanguage:(nullable NSString *)languageName; // languageName is in ISO lang region format
@@ -102,6 +104,8 @@
@property (readonly, copy, NS_NONATOMIC_IOSONLY) NSArray<NSTextList *> *textLists API_AVAILABLE(macos(10.0), ios(7.0), tvos(9.0), watchos(2.0), visionos(1.0)); // Array to specify the text lists containing the paragraph, nested from outermost to innermost.
+@property (readonly, copy, NS_NONATOMIC_IOSONLY) NSArray<__kindof NSTextBlock *> *textBlocks API_AVAILABLE(macos(10.0), ios(6.0), tvos(9.0), visionos(1.0), watchos(2.0)); // Array to specify the text blocks containing the paragraph, nested from outermost to innermost.
+
@property (readonly, NS_NONATOMIC_IOSONLY) BOOL allowsDefaultTighteningForTruncation API_AVAILABLE(macos(10.11), ios(9.0), tvos(9.0), watchos(2.0), visionos(1.0)); // Tightens inter-character spacing in attempt to fit lines wider than the available space if the line break mode is one of the truncation modes before starting to truncate. NO by default. The maximum amount of tightening performed is determined by the system based on contexts such as font, line width, etc.
@property (readonly, NS_NONATOMIC_IOSONLY) NSLineBreakStrategy lineBreakStrategy API_AVAILABLE(macos(10.11), ios(9.0), tvos(9.0), watchos(2.0), visionos(1.0)); // Specifies the line break strategies that may be used for laying out the paragraph. The default value is NSLineBreakStrategyNone.
@@ -112,6 +116,7 @@
UIKIT_EXTERN API_AVAILABLE(macos(10.0), ios(6.0), tvos(9.0), watchos(2.0), visionos(1.0))
@interface NSMutableParagraphStyle : NSParagraphStyle
+@property (NS_NONATOMIC_IOSONLY) NSTextAlignment alignment;
@property (NS_NONATOMIC_IOSONLY) CGFloat lineSpacing;
@property (NS_NONATOMIC_IOSONLY) CGFloat paragraphSpacing;
@property (NS_NONATOMIC_IOSONLY) CGFloat firstLineHeadIndent;
@@ -130,6 +135,7 @@
@property (NS_NONATOMIC_IOSONLY) BOOL allowsDefaultTighteningForTruncation API_AVAILABLE(macos(10.11), ios(9.0), tvos(9.0), watchos(2.0), visionos(1.0));
@property (NS_NONATOMIC_IOSONLY) NSLineBreakStrategy lineBreakStrategy API_AVAILABLE(macos(10.11), ios(9.0), tvos(9.0), watchos(2.0), visionos(1.0));
@property (NS_NONATOMIC_IOSONLY, copy) NSArray<NSTextList *> *textLists API_AVAILABLE(macos(10.0), ios(7.0), tvos(9.0), watchos(2.0), visionos(1.0));
+@property (copy, NS_NONATOMIC_IOSONLY) NSArray<__kindof NSTextBlock *> *textBlocks API_AVAILABLE(macos(10.0), ios(6.0), tvos(9.0), visionos(1.0), watchos(2.0));
- (void)addTabStop:(NSTextTab *)anObject API_AVAILABLE(macos(10.0), ios(9.0), tvos(9.0), watchos(2.0), visionos(1.0));
- (void)removeTabStop:(NSTextTab *)anObject API_AVAILABLE(macos(10.0), ios(9.0), tvos(9.0), watchos(2.0), visionos(1.0));
@@ -139,44 +145,6 @@
@end
NS_HEADER_AUDIT_END(nullability, sendability)
-#endif // UIKIT_HAS_UIFOUNDATION_SYMBOLS && !TARGET_OS_OSX
#else
#import <UIFoundation/NSParagraphStyle.h>
-#endif
-
-#import <Foundation/Foundation.h>
-#import <UIKit/UIKitDefines.h>
-#import <UIKit/NSText.h>
-
-@class NSTextList;
-
-#if UIKIT_HAS_UIFOUNDATION_SYMBOLS && !TARGET_OS_OSX
-NS_HEADER_AUDIT_BEGIN(nullability, sendability)
-
-UIKIT_EXTERN API_AVAILABLE(macos(10.0), ios(7.0), tvos(9.0), watchos(2.0), visionos(1.0))
-@interface NSTextTab ()
-- (instancetype)initWithTextAlignment:(NSTextAlignment)alignment location:(CGFloat)loc options:(NSDictionary<NSTextTabOptionKey, id> *)options NS_DESIGNATED_INITIALIZER; // Initializes a text tab with the text alignment, location, and options. The text alignment is used to determine the position of text inside the tab column.
-
-
-@property (readonly, NS_NONATOMIC_IOSONLY) NSTextAlignment alignment; // Defines the alignment of tab column contents. NSTextAlignmentNatural and NSTextAlignmentJustified are resolved either NSTextAlignmentLeft or NSTextAlignmentRight based on the user's preferred language.
-@end
-
-UIKIT_EXTERN API_AVAILABLE(macos(10.0), ios(6.0), tvos(9.0), watchos(2.0), visionos(1.0))
-@interface NSParagraphStyle ()
-@property (readonly, NS_NONATOMIC_IOSONLY) NSTextAlignment alignment;
-@end
-
-UIKIT_EXTERN API_AVAILABLE(macos(10.0), ios(6.0), tvos(9.0), watchos(2.0), visionos(1.0))
-@interface NSMutableParagraphStyle ()
-@property (NS_NONATOMIC_IOSONLY) NSTextAlignment alignment;
-@end
-
-NS_HEADER_AUDIT_END(nullability, sendability)
-#elif TARGET_OS_OSX
-#import <AppKit/NSParagraphStyle.h>
-#endif // UIKIT_HAS_UIFOUNDATION_SYMBOLS
-
-
-#else
-#import <UIKitCore/NSParagraphStyle.h>
#endif
diff -ruN /Applications/Xcode_26.5.0.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/NSShadow.h /Applications/Xcode_27.0.0-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/NSShadow.h
--- /Applications/Xcode_26.5.0.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/NSShadow.h 2026-04-18 23:02:32
+++ /Applications/Xcode_27.0.0-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/NSShadow.h 2026-05-30 22:15:06
@@ -1,40 +1,37 @@
-#if (defined(USE_UIKIT_PUBLIC_HEADERS) && USE_UIKIT_PUBLIC_HEADERS) || !__has_include(<UIKitCore/NSShadow.h>)
+#if (defined(USE_UIKIT_PUBLIC_HEADERS) && USE_UIKIT_PUBLIC_HEADERS) || !__has_include(<UIFoundation/NSShadow.h>)
//
// NSShadow.h
-// UIKit
+// Text Kit
//
-// Copyright (c) 2002-2018 Apple Inc. All rights reserved.
+// Copyright (c) 2002-2025, Apple Inc. All rights reserved.
//
#import <Foundation/Foundation.h>
-#import <UIKit/UIKitDefines.h>
#import <CoreGraphics/CoreGraphics.h>
+#import <UIKit/UIKitDefines.h>
+@class UIColor;
+
NS_HEADER_AUDIT_BEGIN(nullability, sendability)
-#if UIKIT_HAS_UIFOUNDATION_SYMBOLS
-
/*
NSShadow stores the properties of a drop shadow for drawing text.
To set a shadow on an NSAttributedString use it as a value for NSShadowAttributeName.
*/
-UIKIT_EXTERN API_AVAILABLE(ios(6.0), watchos(2.0))
+UIKIT_EXTERN API_AVAILABLE(macos(10.0), ios(6.0), watchos(2.0), tvos(9.0), visionos(1.0))
@interface NSShadow : NSObject <NSCopying, NSSecureCoding>
-- (instancetype)init NS_DESIGNATED_INITIALIZER;
+- (instancetype)init NS_DESIGNATED_INITIALIZER; // designated initializer, returns a default shadow with zero offset, zero blur radius, and default color
- (nullable instancetype)initWithCoder:(NSCoder *)coder NS_DESIGNATED_INITIALIZER;
-@property (nonatomic, assign) CGSize shadowOffset; // offset in user space of the shadow from the original drawing
-@property (nonatomic, assign) CGFloat shadowBlurRadius; // blur radius of the shadow in default user space units
-@property (nullable, nonatomic, strong) id shadowColor; // color used for the shadow (default is black with an alpha value of 1/3)
+@property (NS_NONATOMIC_IOSONLY) CGSize shadowOffset; // offset in user space of the shadow from the original drawing
+@property (NS_NONATOMIC_IOSONLY) CGFloat shadowBlurRadius; // blur radius of the shadow in default user space units
+@property (nullable, copy, NS_NONATOMIC_IOSONLY) id shadowColor; // color used for the shadow (default is black with an alpha value of 1/3)
@end
-#endif // UIKIT_HAS_UIFOUNDATION_SYMBOLS
-
NS_HEADER_AUDIT_END(nullability, sendability)
-
#else
-#import <UIKitCore/NSShadow.h>
+#import <UIFoundation/NSShadow.h>
#endif
diff -ruN /Applications/Xcode_26.5.0.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/NSStringDrawing.h /Applications/Xcode_27.0.0-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/NSStringDrawing.h
--- /Applications/Xcode_26.5.0.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/NSStringDrawing.h 2026-04-19 00:46:23
+++ /Applications/Xcode_27.0.0-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/NSStringDrawing.h 2026-05-30 22:14:45
@@ -1,18 +1,14 @@
-#if (defined(USE_UIKIT_PUBLIC_HEADERS) && USE_UIKIT_PUBLIC_HEADERS) || !__has_include(<UIKitCore/NSStringDrawing.h>)
#if (defined(USE_UIKIT_PUBLIC_HEADERS) && USE_UIKIT_PUBLIC_HEADERS) || !__has_include(<UIFoundation/NSStringDrawing.h>)
-#import <UIKit/UIKitDefines.h>
-#if UIKIT_HAS_UIFOUNDATION_SYMBOLS && !TARGET_OS_OSX
-#import <UIKit/UIKitDefines.h>
-
//
// NSStringDrawing.h
-// UIKit
+// Text Kit
//
-// Copyright (c) 2011-2025, Apple Inc. All rights reserved.
+// Copyright (c) 1994-2025, Apple Inc. All rights reserved.
//
#import <Foundation/Foundation.h>
#import <CoreGraphics/CGGeometry.h>
+#import <UIKit/UIKitDefines.h>
#import <UIKit/NSAttributedString.h>
@class NSAttributedString;
@@ -55,7 +51,7 @@
NSStringDrawingUsesDeviceMetrics = 1 << 3, // Uses image glyph bounds instead of typographic bounds
NSStringDrawingTruncatesLastVisibleLine API_AVAILABLE(macos(10.5), ios(6.0), tvos(9.0), watchos(2.0), visionos(1.0)) = 1 << 5, // Truncates and adds the ellipsis character to the last visible line if the text doesn't fit into the bounds specified. Ignored if NSStringDrawingUsesLineFragmentOrigin is not also set.
- /// Specifies the behavior for resolving ``NSTextAlignment.natural`` to the visual alignment.
+ /// Specifies the behavior for resolving ``NSTextAlignment/natural`` to the visual alignment.
///
/// When set, the resolved visual alignment is determined by the resolved base writing direction; otherwise, it is using the user’s preferred language.
NSStringDrawingOptionsResolvesNaturalAlignmentWithBaseWritingDirection API_AVAILABLE(macos(26.0), ios(26.0), tvos(26.0), visionos(26.0), watchos(26.0)) = (1 << 9),
@@ -75,33 +71,12 @@
- (CGRect)boundingRectWithSize:(CGSize)size options:(NSStringDrawingOptions)options context:(nullable NSStringDrawingContext *)context API_AVAILABLE(macos(10.11), ios(6.0), tvos(9.0), watchos(2.0), visionos(1.0));
@end
-NS_HEADER_AUDIT_END(nullability, sendability)
-#endif // UIKIT_HAS_UIFOUNDATION_SYMBOLS && !TARGET_OS_OSX
-#else
-#import <UIFoundation/NSStringDrawing.h>
-#endif
-
-#import <Foundation/Foundation.h>
-#import <CoreGraphics/CGGeometry.h>
-#import <UIKit/UIKitDefines.h>
-#import <UIKit/NSAttributedString.h>
-
-@class NSAttributedString;
-@class NSString;
-@class NSStringDrawingContext;
-
-#if UIKIT_HAS_UIFOUNDATION_SYMBOLS && !TARGET_OS_OSX
-NS_HEADER_AUDIT_BEGIN(nullability, sendability)
-
/************************ Deprecated ************************/
@interface NSStringDrawingContext (NSStringDrawingContextDeprecated)
@property (nonatomic) CGFloat minimumTrackingAdjustment API_DEPRECATED("", ios(6.0, 7.0), watchos(2.0, 2.0)) API_UNAVAILABLE(visionos, tvos);
@property (nonatomic, readonly) CGFloat actualTrackingAdjustment API_DEPRECATED("", ios(6.0, 7.0), watchos(2.0, 2.0)) API_UNAVAILABLE(visionos, tvos);
@end
-
NS_HEADER_AUDIT_END(nullability, sendability)
-#endif // UIKIT_HAS_UIFOUNDATION_SYMBOLS
-
#else
-#import <UIKitCore/NSStringDrawing.h>
+#import <UIFoundation/NSStringDrawing.h>
#endif
diff -ruN /Applications/Xcode_26.5.0.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/NSText.h /Applications/Xcode_27.0.0-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/NSText.h
--- /Applications/Xcode_26.5.0.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/NSText.h 2026-04-18 23:02:39
+++ /Applications/Xcode_27.0.0-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/NSText.h 2026-05-30 22:15:06
@@ -1,17 +1,15 @@
-#if (defined(USE_UIKIT_PUBLIC_HEADERS) && USE_UIKIT_PUBLIC_HEADERS) || !__has_include(<UIKitCore/NSText.h>)
#if (defined(USE_UIKIT_PUBLIC_HEADERS) && USE_UIKIT_PUBLIC_HEADERS) || !__has_include(<UIFoundation/NSText.h>)
-#import <UIKit/UIKitDefines.h>
-#if UIKIT_HAS_UIFOUNDATION_SYMBOLS && !TARGET_OS_OSX
-#import <UIKit/UIKitDefines.h>
-#import <Foundation/Foundation.h>
-
//
// NSText.h
-// UIKit
+// Text Kit
//
-// Copyright (c) 2011-2025, Apple Inc. All rights reserved.
+// Copyright (c) 1994-2025, Apple Inc. All rights reserved.
//
+#import <Foundation/Foundation.h>
+#import <UIKit/UIKitDefines.h>
+#import <CoreText/CTParagraphStyle.h>
+
NS_HEADER_AUDIT_BEGIN(nullability, sendability)
#if !__NSWRITING_DIRECTION_SHARED_SECTION__
@@ -24,22 +22,9 @@
} API_AVAILABLE(macos(10.0), ios(6.0), watchos(2.0), tvos(9.0), visionos(1.0));
#endif // !__NSWRITING_DIRECTION_SHARED_SECTION__
-NS_HEADER_AUDIT_END(nullability, sendability)
-#endif // UIKIT_HAS_UIFOUNDATION_SYMBOLS && !TARGET_OS_OSX
-#else
-#import <UIFoundation/NSText.h>
-#endif
-
-#if __has_include(<CoreText/CTParagraphStyle.h>)
-#import <CoreText/CTParagraphStyle.h>
-#endif
-#import <UIKit/UIKitDefines.h>
-
-NS_HEADER_AUDIT_BEGIN(nullability, sendability)
-
#if !__NSTEXT_ALIGNMENT_SHARED_SECTION__
#define __NSTEXT_ALIGNMENT_SHARED_SECTION__ 1
-/* Values for NSTextAlignment */
+#pragma mark NSTextAlignment
typedef NS_ENUM(NSInteger, NSTextAlignment) {
NSTextAlignmentLeft = 0, // Visually left aligned
#if TARGET_ABI_USES_IOS_VALUES
@@ -60,14 +45,11 @@
} API_AVAILABLE(macos(10.0), ios(6.0), watchos(2.0), tvos(9.0), visionos(1.0));
#endif // !__NSTEXT_ALIGNMENT_SHARED_SECTION__
-#if __has_include(<CoreText/CTParagraphStyle.h>)
UIKIT_SWIFT_FORWARD_DECLARE(typedef CF_ENUM(uint8_t, CTTextAlignment))
-UIKIT_EXTERN CTTextAlignment NSTextAlignmentToCTTextAlignment(NSTextAlignment nsTextAlignment) API_AVAILABLE(ios(6.0), tvos(9.0), watchos(2.0), visionos(1.0));
-UIKIT_EXTERN NSTextAlignment NSTextAlignmentFromCTTextAlignment(CTTextAlignment ctTextAlignment) API_AVAILABLE(ios(6.0), tvos(9.0), watchos(2.0), visionos(1.0));
-#endif
+UIKIT_EXTERN CTTextAlignment NSTextAlignmentToCTTextAlignment(NSTextAlignment nsTextAlignment) API_AVAILABLE(macos(10.9), ios(6.0), tvos(9.0), watchos(2.0), visionos(1.0));
+UIKIT_EXTERN NSTextAlignment NSTextAlignmentFromCTTextAlignment(CTTextAlignment ctTextAlignment) API_AVAILABLE(macos(10.9), ios(6.0), tvos(9.0), watchos(2.0), visionos(1.0));
NS_HEADER_AUDIT_END(nullability, sendability)
-
#else
-#import <UIKitCore/NSText.h>
+#import <UIFoundation/NSText.h>
#endif
diff -ruN /Applications/Xcode_26.5.0.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/NSTextAttachment.h /Applications/Xcode_27.0.0-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/NSTextAttachment.h
--- /Applications/Xcode_26.5.0.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/NSTextAttachment.h 2026-04-18 19:41:32
+++ /Applications/Xcode_27.0.0-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/NSTextAttachment.h 2026-05-29 22:59:17
@@ -1,15 +1,14 @@
#if (defined(USE_UIKIT_PUBLIC_HEADERS) && USE_UIKIT_PUBLIC_HEADERS) || !__has_include(<UIFoundation/NSTextAttachment.h>)
-#import <UIKit/UIKitDefines.h>
-
//
// NSTextAttachment.h
-// UIKit
+// Text Kit
//
-// Copyright (c) 2011-2025, Apple Inc. All rights reserved.
+// Copyright (c) 1994-2025, Apple Inc. All rights reserved.
//
#import <Foundation/NSAttributedString.h>
#import <CoreGraphics/CGGeometry.h>
+#import <UIKit/UIKitDefines.h>
NS_HEADER_AUDIT_BEGIN(nullability, sendability)
diff -ruN /Applications/Xcode_26.5.0.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/NSTextContainer.h /Applications/Xcode_27.0.0-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/NSTextContainer.h
--- /Applications/Xcode_26.5.0.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/NSTextContainer.h 2026-04-19 00:46:12
+++ /Applications/Xcode_27.0.0-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/NSTextContainer.h 2026-06-01 00:35:01
@@ -1,24 +1,25 @@
-#if (defined(USE_UIKIT_PUBLIC_HEADERS) && USE_UIKIT_PUBLIC_HEADERS) || !__has_include(<UIKitCore/NSTextContainer.h>)
#if (defined(USE_UIKIT_PUBLIC_HEADERS) && USE_UIKIT_PUBLIC_HEADERS) || !__has_include(<UIFoundation/NSTextContainer.h>)
-#import <UIKit/UIKitDefines.h>
-#if UIKIT_HAS_UIFOUNDATION_SYMBOLS && !TARGET_OS_OSX
-#import <UIKit/UIKitDefines.h>
-
//
// NSTextContainer.h
-// UIKit
+// Text Kit
//
// Copyright (c) 1994-2025, Apple Inc. All rights reserved.
//
+
#import <Foundation/Foundation.h>
+#import <UIKit/UIKitDefines.h>
#import <UIKit/NSParagraphStyle.h>
+#import <UIKit/NSText.h>
+#import <UIKit/NSLayoutManager.h>
@class NSTextLayoutManager;
+@class NSTextView;
+@class UIBezierPath;
NS_HEADER_AUDIT_BEGIN(nullability, sendability)
UIKIT_EXTERN API_AVAILABLE(macos(10.0), ios(7.0), tvos(9.0), visionos(1.0)) API_UNAVAILABLE(watchos)
-@interface NSTextContainer : NSObject <NSSecureCoding>
+@interface NSTextContainer : NSObject <NSSecureCoding, NSTextLayoutOrientationProvider>
/**************************** Initialization ****************************/
@@ -36,6 +37,9 @@
// Default value: NSLineBreakByWordWrapping The line break mode defines the behavior of the last line inside the text container.
@property (NS_NONATOMIC_IOSONLY) NSLineBreakMode lineBreakMode API_AVAILABLE(macos(10.11), ios(7.0), tvos(9.0), visionos(1.0)) API_UNAVAILABLE(watchos);
+// Default value : empty array An array of UIBezierPath representing the exclusion paths inside the receiver's bounding rect.
+@property (copy, NS_NONATOMIC_IOSONLY) NSArray<UIBezierPath *> *exclusionPaths API_AVAILABLE(macos(10.11), ios(7.0), tvos(9.0), visionos(1.0)) API_UNAVAILABLE(watchos);
+
/************************* Layout constraint properties *************************/
// Default value: 5.0 The layout padding at the beginning and end of the line fragment rects insetting the layout width available for the contents. This value is utilized by NSLayoutManager for determining the layout width.
@@ -61,40 +65,20 @@
@end
-NS_HEADER_AUDIT_END(nullability, sendability)
-#endif // UIKIT_HAS_UIFOUNDATION_SYMBOLS && !TARGET_OS_OSX
-#else
-#import <UIFoundation/NSTextContainer.h>
-#endif
+#pragma mark NSLayoutManager Interface
+@class NSLayoutManager;
-#import <Foundation/Foundation.h>
-#import <UIKit/NSParagraphStyle.h>
-#import <UIKit/UIKitDefines.h>
-#import <UIKit/NSLayoutManager.h>
+@interface NSTextContainer (NSTextContainer_NSLayoutManagerInterface)
-@class UIBezierPath;
-@class NSTextLayoutManager;
-
-#if UIKIT_HAS_UIFOUNDATION_SYMBOLS && !TARGET_OS_OSX
-NS_HEADER_AUDIT_BEGIN(nullability, sendability)
-
-@interface NSTextContainer () <NSTextLayoutOrientationProvider>
-
// Accessor for the NSLayoutManager object owning the receiver.
// Avoid assigning a layout manager directly through this property. Adding a text container to a layout manager through -[NSLayoutManager addTextContainer:] will use the property for assigning the new layout manager.
@property (nullable, assign, NS_NONATOMIC_IOSONLY) NSLayoutManager *layoutManager API_AVAILABLE(macos(10.0), ios(9.0), tvos(9.0), visionos(1.0)) API_UNAVAILABLE(watchos);
// This method should be used instead of the primitive -setLayoutManager: if you need to replace a container's layoutManager with a new one leaving the rest of the web intact. All the NSTextContainers on the old NSLayoutManager get transferred to the new one. This method deals with all the work of making sure the containers don't get deallocated and removing the old layoutManager from the text storage and replacing it with the new one.
- (void)replaceLayoutManager:(NSLayoutManager *)newLayoutManager NS_SWIFT_NAME(replaceLayoutManager(_:)) API_AVAILABLE(macos(10.0), ios(9.0), tvos(9.0), visionos(1.0)) API_UNAVAILABLE(watchos);
-
-// Default value : empty array An array of UIBezierPath representing the exclusion paths inside the receiver's bounding rect.
-@property (copy, NS_NONATOMIC_IOSONLY) NSArray<UIBezierPath *> *exclusionPaths API_AVAILABLE(macos(10.11), ios(7.0), tvos(9.0), visionos(1.0)) API_UNAVAILABLE(watchos);
-
@end
NS_HEADER_AUDIT_END(nullability, sendability)
-#endif // UIKIT_HAS_UIFOUNDATION_SYMBOLS
-
#else
-#import <UIKitCore/NSTextContainer.h>
+#import <UIFoundation/NSTextContainer.h>
#endif
diff -ruN /Applications/Xcode_26.5.0.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/NSTextLayoutFragment.h /Applications/Xcode_27.0.0-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/NSTextLayoutFragment.h
--- /Applications/Xcode_26.5.0.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/NSTextLayoutFragment.h 2026-04-18 23:03:48
+++ /Applications/Xcode_27.0.0-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/NSTextLayoutFragment.h 2026-05-29 22:58:31
@@ -8,6 +8,7 @@
#import <Foundation/NSArray.h>
#import <CoreGraphics/CoreGraphics.h>
+#import <UIKit/NSTextViewportRenderingSurface.h>
@class NSTextLayoutManager;
@class NSTextElement;
@@ -38,7 +39,7 @@
} API_AVAILABLE(macos(12.0), ios(15.0), tvos(15.0), visionos(1.0)) API_UNAVAILABLE(watchos);
API_AVAILABLE(macos(12.0), ios(15.0), tvos(15.0), visionos(1.0)) API_UNAVAILABLE(watchos)
-@interface NSTextLayoutFragment : NSObject <NSSecureCoding>
+@interface NSTextLayoutFragment : NSObject <NSSecureCoding, NSTextViewportRenderingSurfaceKey>
#pragma mark Initialization
- (instancetype)initWithTextElement:(NSTextElement *)textElement range:(nullable NSTextRange *)rangeInElement NS_DESIGNATED_INITIALIZER;
- (nullable instancetype)initWithCoder:(NSCoder *)coder NS_DESIGNATED_INITIALIZER;
diff -ruN /Applications/Xcode_26.5.0.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/NSTextLayoutManager.h /Applications/Xcode_27.0.0-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/NSTextLayoutManager.h
--- /Applications/Xcode_26.5.0.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/NSTextLayoutManager.h 2026-04-18 23:04:33
+++ /Applications/Xcode_27.0.0-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/NSTextLayoutManager.h 2026-05-29 23:13:18
@@ -18,6 +18,8 @@
@class NSTextSelection;
@class NSTextSelectionNavigation;
@class NSTextViewportLayoutController;
+@class NSTextAttachment;
+@class NSTextAttachmentViewProvider;
@protocol NSTextLocation;
@protocol NSTextLayoutManagerDelegate;
@protocol NSTextSelectionDataSource;
@@ -58,10 +60,10 @@
// When YES, NSTextLayoutManager will attempt to hyphenate when wrapping lines. May be overridden on a per-paragraph basis by the NSParagraphStyle's usesDefaultHyphenation. The receiver makes the best effort to decide the exact logic including the hyphenation factor based on the context. The default value is NO. Can be overridden by the preference key @"NSUsesDefaultHyphenation".
@property BOOL usesHyphenation;
-/// Specifies the behavior for resolving ``NSTextAlignment.natural`` to the visual alignment.
+/// Specifies the behavior for resolving ``NSTextAlignment/natural`` to the visual alignment.
///
-/// When set to ``true``, the resolved visual alignment is determined by the resolved base writing direction; otherwise, it is using the user’s preferred language.
-/// The default value is ``true``.
+/// When set to `true`, the resolved visual alignment is determined by the resolved base writing direction; otherwise, it is using the user’s preferred language.
+/// The default value is `true`.
@property BOOL resolvesNaturalAlignmentWithBaseWritingDirection API_AVAILABLE(macos(26.0), ios(26.0), tvos(26.0), visionos(26.0)) API_UNAVAILABLE(watchos);
#pragma mark NSTextContentManager interface
@@ -162,6 +164,16 @@
// Rendering attributes
// Returns a dictionary of rendering attributes for rendering NSLinkAttributeName. Just as other rendering attributes, specifying NSNull removes the attribute from the final attributes used for rendering. It has priority over the general rendering attributes.
- (nullable NSDictionary<NSAttributedStringKey, id> *)textLayoutManager:(NSTextLayoutManager *)textLayoutManager renderingAttributesForLink:(id)link atLocation:(id <NSTextLocation>)location defaultAttributes:(NSDictionary<NSAttributedStringKey, id> *)renderingAttributes;
+
+// Returns the text viewport layout container for textContainer. If this method returns nil, it will instantiate from NSTextViewportLayoutController.
+- (nullable NSTextViewportLayoutController *)textLayoutManager:(NSTextLayoutManager *)textLayoutManager textViewportLayoutControllerForTextContainer:(NSTextContainer *)textContainer API_AVAILABLE(macos(14.0), ios(17.0), tvos(17.0), visionos(1.0)) API_UNAVAILABLE(watchos);
+
+// View Provider caching
+// When implemented, notifies delegate that the viewProvider associated with a particular textAttachment is about to be invalidated, and can be used to cache the viewProvider.
+- (void)textLayoutManager:(NSTextLayoutManager *)textLayoutManager cacheTextAttachmentViewProvider:(NSTextAttachmentViewProvider *)viewProvider forTextAttachment:(NSTextAttachment *)textAttachment API_AVAILABLE(macos(27.0), ios(27.0), tvos(27.0), visionos(27.0)) API_UNAVAILABLE(watchos);
+
+// Returns a cached NSTextAttachmentViewProvider to be associated with a particular attachment
+- (nullable NSTextAttachmentViewProvider *)textLayoutManager:(NSTextLayoutManager *)textLayoutManager retrieveCachedTextAttachmentViewProviderForTextAttachment:(NSTextAttachment *)attachment API_AVAILABLE(macos(27.0), ios(27.0), tvos(27.0), visionos(27.0)) API_UNAVAILABLE(watchos);
@end
diff -ruN /Applications/Xcode_26.5.0.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/NSTextRange.h /Applications/Xcode_27.0.0-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/NSTextRange.h
--- /Applications/Xcode_26.5.0.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/NSTextRange.h 2026-04-18 22:38:56
+++ /Applications/Xcode_27.0.0-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/NSTextRange.h 2026-05-29 23:13:18
@@ -17,6 +17,13 @@
// Compares and returns the logical ordering to location
- (NSComparisonResult)compare:(id <NSTextLocation>)location API_AVAILABLE(macos(12.0), ios(15.0), tvos(15.0), watchos(8.0), visionos(1.0));
+
+// Basic comparison of location equivalence, should have the result of NSOrderedSame from compare:
+- (BOOL)isEqual:(nullable id)location;
+
+// Must be consistent with results from isEqual while also avoiding hash collisions
+@property (readonly) NSUInteger hash;
+
@end
#pragma mark NSTextRange
diff -ruN /Applications/Xcode_26.5.0.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/NSTextStorage.h /Applications/Xcode_27.0.0-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/NSTextStorage.h
--- /Applications/Xcode_26.5.0.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/NSTextStorage.h 2026-04-19 00:46:11
+++ /Applications/Xcode_27.0.0-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/NSTextStorage.h 2026-05-29 23:13:18
@@ -1,31 +1,30 @@
-#if (defined(USE_UIKIT_PUBLIC_HEADERS) && USE_UIKIT_PUBLIC_HEADERS) || !__has_include(<UIKitCore/NSTextStorage.h>)
+#if (defined(USE_UIKIT_PUBLIC_HEADERS) && USE_UIKIT_PUBLIC_HEADERS) || !__has_include(<UIFoundation/NSTextStorage.h>)
//
// NSTextStorage.h
-// UIKit
+// Text Kit
//
-// Copyright (c) 2011-2018, Apple Inc. All rights reserved.
+// Copyright (c) 1994-2025, Apple Inc. All rights reserved.
//
#import <Foundation/NSObject.h>
#import <Foundation/NSNotification.h>
-#import <UIKit/NSAttributedString.h>
#import <UIKit/UIKitDefines.h>
+#import <UIKit/NSAttributedString.h>
+NS_HEADER_AUDIT_BEGIN(nullability, sendability)
+
@class NSArray, NSLayoutManager, NSNotification;
@protocol NSTextStorageDelegate;
@protocol NSTextStorageObserving;
-NS_HEADER_AUDIT_BEGIN(nullability, sendability)
-
-#if UIKIT_HAS_UIFOUNDATION_SYMBOLS
-
typedef NS_OPTIONS(NSUInteger, NSTextStorageEditActions) {
- NSTextStorageEditedAttributes = (1 << 0),
- NSTextStorageEditedCharacters = (1 << 1)
-} API_AVAILABLE(macos(10.11), ios(7.0)) API_UNAVAILABLE(watchos);
+ NSTextStorageEditedAttributes API_AVAILABLE(macos(10.0), ios(7.0), tvos(9.0), visionos(1.0)) API_UNAVAILABLE(watchos) = (1 << 0),
+ NSTextStorageEditedCharacters API_AVAILABLE(macos(10.0), ios(7.0), tvos(9.0), visionos(1.0)) API_UNAVAILABLE(watchos) = (1 << 1)
+} API_AVAILABLE(macos(10.11), ios(7.0), tvos(9.0), visionos(1.0)) API_UNAVAILABLE(watchos)
+NS_SWIFT_NAME(NSTextStorage.EditActions)
+;
-
/* Note for subclassing NSTextStorage: NSTextStorage is a semi-abstract subclass of NSMutableAttributedString. It implements change management (beginEditing/endEditing), verification of attributes, delegate handling, and layout management notification. The one aspect it does not implement is the actual attributed string storage --- this is left up to the subclassers, which need to override the two NSMutableAttributedString primitives in addition to two NSAttributedString primitives:
- (NSString *)string;
@@ -37,21 +36,8 @@
These primitives should perform the change then call edited:range:changeInLength: to get everything else to happen.
*/
-UIKIT_EXTERN API_AVAILABLE(macos(10.0), ios(7.0)) API_UNAVAILABLE(watchos)
+UIKIT_EXTERN API_AVAILABLE(macos(10.0), ios(7.0), tvos(9.0), visionos(1.0)) API_UNAVAILABLE(watchos)
@interface NSTextStorage : NSMutableAttributedString <NSSecureCoding>
-
-/**************************** Layout manager ****************************/
-
-// NSLayoutManager objects owned by the receiver.
-@property (readonly, copy, NS_NONATOMIC_IOSONLY) NSArray<NSLayoutManager *> *layoutManagers;
-
-// Adds aLayoutManager to the receiver. Sends -[NSLayoutManager setTextStorage:] to aLayoutManager with the receiver.
-- (void)addLayoutManager:(NSLayoutManager *)aLayoutManager;
-
-// Removes aLayoutManager from the receiver if already owned by it. Sends -[NSLayoutManager setTextStorage:] to aLayoutManager with nil.
-- (void)removeLayoutManager:(NSLayoutManager *)aLayoutManager;
-
-
/**************************** Pending edit info ****************************/
// These methods return information about the editing status. Especially useful when there are outstanding beginEditing calls or during processEditing...
@@ -98,21 +84,22 @@
/**** NSTextStorage delegate methods ****/
-API_UNAVAILABLE(watchos) @protocol NSTextStorageDelegate <NSObject>
+API_AVAILABLE(macos(10.11), ios(7.0), tvos(9.0), visionos(1.0)) API_UNAVAILABLE(watchos)
+@protocol NSTextStorageDelegate <NSObject>
@optional
// Sent inside -processEditing right before fixing attributes. Delegates can change the characters or attributes.
-- (void)textStorage:(NSTextStorage *)textStorage willProcessEditing:(NSTextStorageEditActions)editedMask range:(NSRange)editedRange changeInLength:(NSInteger)delta API_AVAILABLE(macos(10.11), ios(7.0));
+- (void)textStorage:(NSTextStorage *)textStorage willProcessEditing:(NSTextStorageEditActions)editedMask range:(NSRange)editedRange changeInLength:(NSInteger)delta API_AVAILABLE(macos(10.11), ios(7.0), tvos(9.0), visionos(1.0)) API_UNAVAILABLE(watchos);
// Sent inside -processEditing right before notifying layout managers. Delegates can change the attributes.
-- (void)textStorage:(NSTextStorage *)textStorage didProcessEditing:(NSTextStorageEditActions)editedMask range:(NSRange)editedRange changeInLength:(NSInteger)delta API_AVAILABLE(macos(10.11), ios(7.0));
+- (void)textStorage:(NSTextStorage *)textStorage didProcessEditing:(NSTextStorageEditActions)editedMask range:(NSRange)editedRange changeInLength:(NSInteger)delta API_AVAILABLE(macos(10.11), ios(7.0), tvos(9.0), visionos(1.0)) API_UNAVAILABLE(watchos);
@end
/**** Notifications ****/
-UIKIT_EXTERN NSNotificationName const NSTextStorageWillProcessEditingNotification API_AVAILABLE(macos(10.0), ios(7.0)) API_UNAVAILABLE(watchos);
-UIKIT_EXTERN NSNotificationName const NSTextStorageDidProcessEditingNotification API_AVAILABLE(macos(10.0), ios(7.0)) API_UNAVAILABLE(watchos);
+UIKIT_EXTERN NSNotificationName const NSTextStorageWillProcessEditingNotification API_AVAILABLE(macos(10.0), ios(7.0), tvos(9.0), visionos(1.0)) API_UNAVAILABLE(watchos);
+UIKIT_EXTERN NSNotificationName const NSTextStorageDidProcessEditingNotification API_AVAILABLE(macos(10.0), ios(7.0), tvos(9.0), visionos(1.0)) API_UNAVAILABLE(watchos);
#pragma mark NSTextStorageObserving
// NSTextStorageObserving defines the protocol for NSTextStorage controller objects observing changes in the text backing-store.
@@ -128,10 +115,21 @@
- (void)performEditingTransactionForTextStorage:(NSTextStorage *)textStorage usingBlock:(void (NS_NOESCAPE ^) (void))transaction;
@end
-#endif // UIKIT_HAS_UIFOUNDATION_SYMBOLS
+/**************************** Layout Manager ****************************/
+API_AVAILABLE(macos(10.0), ios(7.0), tvos(9.0), visionos(1.0)) API_UNAVAILABLE(watchos)
+@interface NSTextStorage (NSTextStorage_NSLayoutManagerInterface)
-NS_HEADER_AUDIT_END(nullability, sendability)
+// NSLayoutManager objects owned by the receiver.
+@property (readonly, copy, NS_NONATOMIC_IOSONLY) NSArray<NSLayoutManager *> *layoutManagers;
+// Adds aLayoutManager to the receiver. Sends -[NSLayoutManager setTextStorage:] to aLayoutManager with the receiver.
+- (void)addLayoutManager:(NSLayoutManager *)aLayoutManager;
+
+// Removes aLayoutManager from the receiver if already owned by it. Sends -[NSLayoutManager setTextStorage:] to aLayoutManager with nil.
+- (void)removeLayoutManager:(NSLayoutManager *)aLayoutManager;
+@end
+
+NS_HEADER_AUDIT_END(nullability, sendability)
#else
-#import <UIKitCore/NSTextStorage.h>
+#import <UIFoundation/NSTextStorage.h>
#endif
diff -ruN /Applications/Xcode_26.5.0.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/NSTextTable.h /Applications/Xcode_27.0.0-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/NSTextTable.h
--- /Applications/Xcode_26.5.0.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/NSTextTable.h 1969-12-31 19:00:00
+++ /Applications/Xcode_27.0.0-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/NSTextTable.h 2026-06-01 00:34:57
@@ -0,0 +1,123 @@
+#if (defined(USE_UIKIT_PUBLIC_HEADERS) && USE_UIKIT_PUBLIC_HEADERS) || !__has_include(<UIFoundation/NSTextTable.h>)
+//
+// NSTextTable.h
+// Text Kit
+//
+// Copyright (c) 2004-2025, Apple Inc. All rights reserved.
+//
+
+#import <UIKit/UIKitDefines.h>
+#import <UIKit/NSText.h>
+#import <CoreFoundation/CFCGTypes.h>
+
+@class NSTextTable;
+@class NSLayoutManager;
+@class NSTextContainer;
+@class UIColor;
+
+
+NS_HEADER_AUDIT_BEGIN(nullability, sendability)
+
+/* Values for NSTextBlockValueType */
+typedef NS_ENUM(NSInteger, NSTextBlockValueType) {
+ NSTextBlockValueTypeAbsolute = 0, // Absolute value in points
+ NSTextBlockValueTypePercentage = 1, // Percentage value (out of 100)
+
+} API_AVAILABLE(macos(10.0), ios(6.0), tvos(9.0), visionos(1.0), watchos(2.0)) NS_SWIFT_NAME(NSTextBlock.ValueType);
+
+/* Values for NSTextBlockDimension */
+typedef NS_ENUM(NSInteger, NSTextBlockDimension) {
+ NSTextBlockDimensionWidth = 0,
+ NSTextBlockDimensionMinimumWidth = 1,
+ NSTextBlockDimensionMaximumWidth = 2,
+ NSTextBlockDimensionHeight = 4,
+ NSTextBlockDimensionMinimumHeight = 5,
+ NSTextBlockDimensionMaximumHeight = 6,
+
+
+} API_AVAILABLE(macos(10.0), ios(6.0), tvos(9.0), visionos(1.0), watchos(2.0)) NS_SWIFT_NAME(NSTextBlock.Dimension);
+
+/* Values for NSTextBlockLayer */
+typedef NS_ENUM(NSInteger, NSTextBlockLayer) {
+ NSTextBlockLayerPadding = -1,
+ NSTextBlockLayerBorder = 0,
+ NSTextBlockLayerMargin = 1,
+
+} API_AVAILABLE(macos(10.0), ios(6.0), tvos(9.0), visionos(1.0), watchos(2.0)) NS_SWIFT_NAME(NSTextBlock.Layer);
+
+/* Values for NSTextBlockVerticalAlignment */
+typedef NS_ENUM(NSInteger, NSTextBlockVerticalAlignment) {
+ NSTextBlockVerticalAlignmentTop = 0,
+ NSTextBlockVerticalAlignmentMiddle = 1,
+ NSTextBlockVerticalAlignmentBottom = 2,
+ NSTextBlockVerticalAlignmentBaseline = 3,
+
+} API_AVAILABLE(macos(10.0), ios(6.0), tvos(9.0), visionos(1.0), watchos(2.0)) NS_SWIFT_NAME(NSTextBlock.VerticalAlignment);
+
+/* Values for NSTextTableLayoutAlgorithm */
+typedef NS_ENUM(NSInteger, NSTextTableLayoutAlgorithm) {
+ NSTextTableLayoutAlgorithmAutomatic = 0,
+ NSTextTableLayoutAlgorithmFixed = 1,
+
+} API_AVAILABLE(macos(10.0), ios(6.0), tvos(9.0), visionos(1.0), watchos(2.0)) NS_SWIFT_NAME(NSTextTable.LayoutAlgorithm);
+
+/* NSTextBlock is the basic object for text block layout, and the superclass of the other classes. */
+UIKIT_EXTERN API_AVAILABLE(macos(10.0), ios(6.0), tvos(9.0), visionos(1.0), watchos(2.0))
+@interface NSTextBlock : NSObject <NSSecureCoding, NSCopying>
+- (instancetype)init NS_DESIGNATED_INITIALIZER;
+- (nullable instancetype)initWithCoder:(NSCoder *)coder NS_DESIGNATED_INITIALIZER;
+
+/* Content size */
+- (void)setValue:(CGFloat)value type:(NSTextBlockValueType)type forDimension:(NSTextBlockDimension)dimension;
+- (CGFloat)valueForDimension:(NSTextBlockDimension)dimension;
+- (NSTextBlockValueType)valueTypeForDimension:(NSTextBlockDimension)dimension;
+
+/* Convenience methods for content width in particular, using the above methods with dimension == NSTextBlockWidth */
+- (void)setContentWidth:(CGFloat)contentWidth type:(NSTextBlockValueType)type;
+@property (readonly, NS_NONATOMIC_IOSONLY) CGFloat contentWidth;
+@property (readonly, NS_NONATOMIC_IOSONLY) NSTextBlockValueType contentWidthValueType;
+
+/* Margin, border, and padding */
+- (void)setWidth:(CGFloat)width type:(NSTextBlockValueType)type forLayer:(NSTextBlockLayer)layer; // Convenience method sets all edges at once
+- (void)setWidth:(CGFloat)width type:(NSTextBlockValueType)type forLayer:(NSTextBlockLayer)layer rectEdge:(CGRectEdge)rectEdge API_AVAILABLE(macos(27.0), ios(27.0), tvos(27.0), visionos(27.0), watchos(27.0));
+- (CGFloat)widthForLayer:(NSTextBlockLayer)layer rectEdge:(CGRectEdge)rectEdge API_AVAILABLE(macos(27.0), ios(27.0), tvos(27.0), visionos(27.0), watchos(27.0));
+- (NSTextBlockValueType)widthValueTypeForLayer:(NSTextBlockLayer)layer rectEdge:(CGRectEdge)rectEdge API_AVAILABLE(macos(27.0), ios(27.0), tvos(27.0), visionos(27.0), watchos(27.0));
+
+/* Alignment */
+@property (NS_NONATOMIC_IOSONLY) NSTextBlockVerticalAlignment verticalAlignment;
+
+/* Colors */
+@property (nullable, copy, NS_NONATOMIC_IOSONLY) UIColor *backgroundColor;
+- (void)setBorderColor:(nullable UIColor *)color; // Convenience method sets all edges at once
+- (void)setBorderColor:(nullable UIColor *)borderColor rectEdge:(CGRectEdge)rectEdge API_AVAILABLE(macos(27.0), ios(27.0), tvos(27.0), visionos(27.0), watchos(27.0));
+- (nullable UIColor *)borderColorForRectEdge:(CGRectEdge)rectEdge API_AVAILABLE(macos(27.0), ios(27.0), tvos(27.0), visionos(27.0), watchos(27.0));
+@end
+
+/* NSTextTableBlock is a subclass of NSTextBlock used for a block that appears as a cell in a text table. */
+UIKIT_EXTERN API_AVAILABLE(macos(10.0), ios(6.0), tvos(9.0), visionos(1.0), watchos(2.0))
+@interface NSTextTableBlock : NSTextBlock
+- (instancetype)initWithTable:(NSTextTable *)table startingRow:(NSInteger)row rowSpan:(NSInteger)rowSpan startingColumn:(NSInteger)column columnSpan:(NSInteger)columnSpan NS_DESIGNATED_INITIALIZER; // Designated initializer
+- (nullable instancetype)initWithCoder:(NSCoder *)coder NS_DESIGNATED_INITIALIZER;
+
+/* These methods determine the block's role in its enclosing table. */
+@property (readonly, strong, NS_NONATOMIC_IOSONLY) NSTextTable * table;
+@property (readonly, NS_NONATOMIC_IOSONLY) NSInteger startingRow;
+@property (readonly, NS_NONATOMIC_IOSONLY) NSInteger rowSpan;
+@property (readonly, NS_NONATOMIC_IOSONLY) NSInteger startingColumn;
+@property (readonly, NS_NONATOMIC_IOSONLY) NSInteger columnSpan;
+
+@end
+
+/* NSTextTable represents a table as a whole. */
+UIKIT_EXTERN API_AVAILABLE(macos(10.0), ios(6.0), tvos(9.0), visionos(1.0), watchos(2.0))
+@interface NSTextTable : NSTextBlock
+/* These methods control the basic parameters of the table. */
+@property (NS_NONATOMIC_IOSONLY) NSInteger numberOfColumns;
+@property (NS_NONATOMIC_IOSONLY) NSTextTableLayoutAlgorithm layoutAlgorithm;
+@property (NS_NONATOMIC_IOSONLY) BOOL collapsesBorders;
+@property (NS_NONATOMIC_IOSONLY) BOOL hidesEmptyCells;
+@end
+NS_HEADER_AUDIT_END(nullability, sendability)
+#else
+#import <UIFoundation/NSTextTable.h>
+#endif
diff -ruN /Applications/Xcode_26.5.0.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/NSTextViewportLayoutController.h /Applications/Xcode_27.0.0-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/NSTextViewportLayoutController.h
--- /Applications/Xcode_26.5.0.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/NSTextViewportLayoutController.h 2026-04-18 23:04:33
+++ /Applications/Xcode_27.0.0-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/NSTextViewportLayoutController.h 2026-05-29 23:05:23
@@ -8,9 +8,11 @@
#import <Foundation/NSObject.h>
#import <CoreGraphics/CGGeometry.h>
+#import <UIKit/NSTextViewportRenderingSurface.h>
@class NSTextRange;
@class NSTextLayoutManager;
+@class NSTextContainer;
@class NSTextViewportLayoutController;
@class NSTextLayoutFragment;
@protocol NSTextLocation;
@@ -42,6 +44,19 @@
// Called when textViewportLayoutController is about to layout.
// Layout information on textViewportLayoutController is up-to-date at the point of this call.
- (void)textViewportLayoutControllerDidLayout:(NSTextViewportLayoutController *)textViewportLayoutController;
+
+// View Provider Caching Support
+- (void)textViewportLayoutController:(NSTextViewportLayoutController *)textViewportLayoutController cacheRenderingSurface:(id<NSTextViewportRenderingSurface>)renderingSurface forKey:(id<NSTextViewportRenderingSurfaceKey>)renderingSurfaceKey;
+
+- (id<NSTextViewportRenderingSurface>)textViewportLayoutController:(NSTextViewportLayoutController *)textViewportLayoutController retrieveCachedRenderingSurfaceForKey:(id<NSTextViewportRenderingSurfaceKey>)renderingSurfaceKey;
+
+// Triggers relayout of the view.
+- (void)textViewportLayoutControllerReceivedSetNeedsLayout:(NSTextViewportLayoutController *)textViewportLayoutController;
+
+#pragma mark NSTextViewportRenderingSurface support
+// Invoked right before textViewportLayoutController:configureRenderingSurfaceForTextLayoutFragment:. The returned rendering surface is registered and mapped by renderingSurfaceForKey:.
+- (nullable id <NSTextViewportRenderingSurface>)textViewportLayoutController:(NSTextViewportLayoutController *)textViewportLayoutController renderingSurfaceForTextLayoutFragment:(NSTextLayoutFragment *)textLayoutFragment API_UNAVAILABLE(macos, ios, tvos, visionos, watchos);
+
@end
#pragma mark NSTextViewportLayoutController
@@ -81,7 +96,13 @@
// Adjusts the viewport rect by the specified offset if needed.
// This is used to artificially move the viewport without affecting viewport content, can be both positive/negative offset.
- (void)adjustViewportByVerticalOffset:(CGFloat)verticalOffset;
+
+#pragma mark NSTextViewportRenderingSurface support
+// Returns a rendering surface corresponding to key. The mapping is registered via the returned rendering surfaces from textViewportLayoutController:renderingSurfaceForTextLayoutFragment:. In addition, it can return auxiliary rendering surfaces registered through addRenderingSurface:key:group:placement:. The mappings are cleared at the beginning of each layoutViewport.
+- (nullable id <NSTextViewportRenderingSurface>)renderingSurfaceForKey:(id <NSTextViewportRenderingSurfaceKey>)key API_UNAVAILABLE(macos, ios, tvos, visionos, watchos);
+
@end
+
NS_HEADER_AUDIT_END(nullability, sendability)
#else
#import <UIFoundation/NSTextViewportLayoutController.h>
diff -ruN /Applications/Xcode_26.5.0.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/NSTextViewportRenderingSurface.h /Applications/Xcode_27.0.0-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/NSTextViewportRenderingSurface.h
--- /Applications/Xcode_26.5.0.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/NSTextViewportRenderingSurface.h 1969-12-31 19:00:00
+++ /Applications/Xcode_27.0.0-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/NSTextViewportRenderingSurface.h 2026-05-30 22:15:06
@@ -0,0 +1,26 @@
+#if (defined(USE_UIKIT_PUBLIC_HEADERS) && USE_UIKIT_PUBLIC_HEADERS) || !__has_include(<UIFoundation/NSTextViewportRenderingSurface.h>)
+//
+// NSTextViewportRenderingSurface.h
+// UIKit
+//
+// Copyright © 2025 Apple Inc. All rights reserved.
+//
+
+#import <Foundation/NSObject.h>
+#import <UIKit/UIKitDefines.h>
+
+#pragma mark - NSTextViewportRenderingSurface
+// A visual drawable element inside the viewport corresponding to a NSTextParagraph and NSTextLayoutFragment . Typically an NSView, UIView or CALayer.
+API_AVAILABLE(macos(27.0), ios(27.0), tvos(27.0), visionos(27.0), watchos(27.0))
+@protocol NSTextViewportRenderingSurface <NSObject>
+
+@end
+
+#pragma mark - NSTextViewportRenderingSurfaceKey
+// The key for identifying a rendering surface inside a viewport. NSString and NSTextLayoutFragment conform to this protocol.
+API_AVAILABLE(macos(15.0), ios(18.0), tvos(18.0), visionos(2.0), watchos(11.0))
+@protocol NSTextViewportRenderingSurfaceKey <NSObject>
+@end
+#else
+#import <UIFoundation/NSTextViewportRenderingSurface.h>
+#endif
diff -ruN /Applications/Xcode_26.5.0.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/NSToolbar+UIKitAdditions.h /Applications/Xcode_27.0.0-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/NSToolbar+UIKitAdditions.h
--- /Applications/Xcode_26.5.0.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/NSToolbar+UIKitAdditions.h 2026-04-18 20:17:52
+++ /Applications/Xcode_27.0.0-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/NSToolbar+UIKitAdditions.h 2026-05-29 01:33:29
@@ -136,6 +136,7 @@
#endif // TARGET_OS_MACCATALYST || TARGET_OS_OSX
+
#else
#import <UIKitCore/NSToolbar+UIKitAdditions.h>
#endif
diff -ruN /Applications/Xcode_26.5.0.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/NSTouchBar+UIKitAdditions.h /Applications/Xcode_27.0.0-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/NSTouchBar+UIKitAdditions.h
--- /Applications/Xcode_26.5.0.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/NSTouchBar+UIKitAdditions.h 2026-04-18 23:02:40
+++ /Applications/Xcode_27.0.0-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/NSTouchBar+UIKitAdditions.h 2026-05-30 22:33:53
@@ -7,7 +7,7 @@
//
#import <TargetConditionals.h>
-#if TARGET_OS_MACCATALYST || TARGET_OS_OSX
+#if TARGET_OS_OSX || TARGET_OS_MACCATALYST
#import <Foundation/Foundation.h>
#import <UIKit/UIKitDefines.h>
#import <UIKit/UIResponder.h>
@@ -54,7 +54,7 @@
NS_HEADER_AUDIT_END(nullability, sendability)
-#endif // TARGET_OS_MACCATALYST || TARGET_OS_OSX
+#endif // TARGET_OS_OSX || TARGET_OS_MACCATALYST
#else
#import <UIKitCore/NSTouchBar+UIKitAdditions.h>
diff -ruN /Applications/Xcode_26.5.0.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/UIAccelerometer.h /Applications/Xcode_27.0.0-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/UIAccelerometer.h
--- /Applications/Xcode_26.5.0.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/UIAccelerometer.h 2026-04-18 23:02:35
+++ /Applications/Xcode_27.0.0-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/UIAccelerometer.h 2026-05-30 22:33:47
@@ -14,11 +14,11 @@
NS_HEADER_AUDIT_BEGIN(nullability, sendability)
-typedef double UIAccelerationValue API_DEPRECATED("UIAcceleration has been replaced by the CoreMotion framework", ios(2.0, 13.0), tvos(9.0, 13.0)) API_UNAVAILABLE(visionos) API_UNAVAILABLE(watchos);
+typedef double UIAccelerationValue API_OBSOLETED("UIAcceleration has been replaced by the CoreMotion framework", ios(2.0, 13.0, 27.0), tvos(9.0, 13.0, 27.0)) API_UNAVAILABLE(watchos, visionos);
@protocol UIAccelerometerDelegate;
-UIKIT_EXTERN API_DEPRECATED("UIAcceleration has been replaced by the CoreMotion framework", ios(2.0, 5.0)) API_UNAVAILABLE(visionos, tvos, watchos) NS_SWIFT_UI_ACTOR
+UIKIT_EXTERN API_OBSOLETED("UIAcceleration has been replaced by the CoreMotion framework", ios(2.0, 5.0, 27.0)) API_UNAVAILABLE(tvos, watchos, visionos) NS_SWIFT_UI_ACTOR
@interface UIAcceleration : NSObject
@property(nonatomic,readonly) NSTimeInterval timestamp;
@@ -28,7 +28,7 @@
@end
-UIKIT_EXTERN API_DEPRECATED("UIAccelerometer has been replaced by the CoreMotion framework", ios(2.0, 5.0)) API_UNAVAILABLE(visionos, tvos, watchos) NS_SWIFT_UI_ACTOR
+UIKIT_EXTERN API_OBSOLETED("UIAcceleration has been replaced by the CoreMotion framework", ios(2.0, 5.0, 27.0)) API_UNAVAILABLE(tvos, watchos, visionos) NS_SWIFT_UI_ACTOR
@interface UIAccelerometer : NSObject
+ (UIAccelerometer *)sharedAccelerometer;
@@ -38,7 +38,7 @@
@end
-API_DEPRECATED("UIAcceleration has been replaced by the CoreMotion framework", ios(2.0, 13.0)) API_UNAVAILABLE(visionos, tvos, watchos) NS_SWIFT_UI_ACTOR
+API_OBSOLETED("UIAcceleration has been replaced by the CoreMotion framework", ios(2.0, 13.0, 27.0)) API_UNAVAILABLE(tvos, watchos, visionos) NS_SWIFT_UI_ACTOR
@protocol UIAccelerometerDelegate<NSObject>
@optional
diff -ruN /Applications/Xcode_26.5.0.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/UIApplication.h /Applications/Xcode_27.0.0-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/UIApplication.h
--- /Applications/Xcode_26.5.0.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/UIApplication.h 2026-04-19 00:46:14
+++ /Applications/Xcode_27.0.0-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/UIApplication.h 2026-05-27 00:33:22
@@ -125,7 +125,7 @@
// UIInterfaceOrientationMaskAllButUpsideDown on a phone. The return value
// should be one of the UIInterfaceOrientationMask values which indicates the
// orientations supported by this application.
-- (UIInterfaceOrientationMask)supportedInterfaceOrientationsForWindow:(nullable UIWindow *)window API_AVAILABLE(ios(6.0)) API_UNAVAILABLE(tvos);
+- (UIInterfaceOrientationMask)supportedInterfaceOrientationsForWindow:(nullable UIWindow *)window API_DEPRECATED("Use UIWindowSceneDelegate.supportedInterfaceOrientations(for:) instead", ios(6.0, 27.0)) API_UNAVAILABLE(tvos, visionos, watchos);
@property(nonatomic,readonly) NSTimeInterval statusBarOrientationAnimationDuration API_DEPRECATED("Use viewWillTransitionToSize:withTransitionCoordinator: instead.", ios(2.0, 13.0)) API_UNAVAILABLE(tvos) API_UNAVAILABLE(visionos, watchos); // Returns the animation duration for the status bar during a 90 degree orientation change. It should be doubled for a 180 degree orientation change.
@property(nonatomic,readonly) CGRect statusBarFrame API_DEPRECATED("Use the statusBarManager property of the window scene instead.", ios(2.0, 13.0)) API_UNAVAILABLE(tvos) API_UNAVAILABLE(visionos, watchos); // returns CGRectZero if the status bar is hidden
@@ -453,7 +453,7 @@
@property (nullable, nonatomic, strong) UIWindow *window API_AVAILABLE(ios(5.0));
-- (UIInterfaceOrientationMask)application:(UIApplication *)application supportedInterfaceOrientationsForWindow:(nullable UIWindow *)window API_AVAILABLE(ios(6.0)) API_UNAVAILABLE(tvos);
+- (UIInterfaceOrientationMask)application:(UIApplication *)application supportedInterfaceOrientationsForWindow:(nullable UIWindow *)window API_DEPRECATED("Use UIWindowSceneDelegate.supportedInterfaceOrientations(for:) instead", ios(6.0, 27.0)) API_UNAVAILABLE(tvos, visionos, watchos);
typedef NSString * UIApplicationExtensionPointIdentifier NS_TYPED_ENUM API_UNAVAILABLE(watchos);
@@ -524,15 +524,15 @@
@property(nonatomic,getter=isProximitySensingEnabled) BOOL proximitySensingEnabled API_DEPRECATED("", ios(2.0, 3.0)) API_UNAVAILABLE(visionos, tvos, watchos); // default is NO. see UIDevice for replacement
- (void)setStatusBarHidden:(BOOL)hidden animated:(BOOL)animated API_DEPRECATED("Use -[UIViewController prefersStatusBarHidden]", ios(2.0, 3.2)) API_UNAVAILABLE(visionos, tvos, watchos);
-// Explicit setting of the status bar orientation is more limited in iOS 6.0 and later.
+// Explicit setting of the status bar orientation is more limited in iOS 6.0 and later and entirely unsupported in iOS 27.0 and later.
@property(readwrite, nonatomic) UIInterfaceOrientation statusBarOrientation API_DEPRECATED("Explicit setting of the status bar orientation is more limited in iOS 6.0 and later", ios(2.0, 9.0)) API_UNAVAILABLE(visionos, tvos, watchos);
- (void)setStatusBarOrientation:(UIInterfaceOrientation)interfaceOrientation animated:(BOOL)animated API_DEPRECATED("Explicit setting of the status bar orientation is more limited in iOS 6.0 and later", ios(2.0, 9.0)) API_UNAVAILABLE(visionos, tvos, watchos);
-// Setting the statusBarStyle does nothing if your application is using the default UIViewController-based status bar system.
+// Setting the statusBarStyle does nothing if your application is using the default UIViewController-based status bar system or is linked against SDK versions 27.0 or later
@property(readwrite, nonatomic) UIStatusBarStyle statusBarStyle API_DEPRECATED("Use -[UIViewController preferredStatusBarStyle]", ios(2.0, 9.0)) API_UNAVAILABLE(visionos, tvos, watchos);
- (void)setStatusBarStyle:(UIStatusBarStyle)statusBarStyle animated:(BOOL)animated API_DEPRECATED("Use -[UIViewController preferredStatusBarStyle]", ios(2.0, 9.0)) API_UNAVAILABLE(visionos, tvos, watchos);
-// Setting statusBarHidden does nothing if your application is using the default UIViewController-based status bar system.
+// Setting statusBarHidden does nothing if your application is using the default UIViewController-based status bar system or is linked against SDK versions 27.0 or later.
@property(readwrite, nonatomic,getter=isStatusBarHidden) BOOL statusBarHidden API_DEPRECATED("Use -[UIViewController prefersStatusBarHidden]", ios(2.0, 9.0)) API_UNAVAILABLE(visionos, tvos, watchos);
- (void)setStatusBarHidden:(BOOL)hidden withAnimation:(UIStatusBarAnimation)animation API_DEPRECATED("Use -[UIViewController prefersStatusBarHidden]", ios(3.2, 9.0)) API_UNAVAILABLE(visionos, tvos, watchos);
diff -ruN /Applications/Xcode_26.5.0.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/UIBarButtonItem.h /Applications/Xcode_27.0.0-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/UIBarButtonItem.h
--- /Applications/Xcode_26.5.0.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/UIBarButtonItem.h 2026-04-18 20:17:56
+++ /Applications/Xcode_27.0.0-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/UIBarButtonItem.h 2026-05-27 00:33:22
@@ -63,6 +63,12 @@
UIBarButtonSystemItemWritingTools API_AVAILABLE(ios(18.2), visionos(26.0)) API_UNAVAILABLE(tvos, watchos)
} API_UNAVAILABLE(watchos);
+typedef NSInteger UIBarButtonItemVisibilityPriority NS_TYPED_EXTENSIBLE_ENUM API_AVAILABLE(ios(27.0), tvos(27.0), visionos(27.0)) API_UNAVAILABLE(watchos);
+
+UIKIT_EXTERN const UIBarButtonItemVisibilityPriority UIBarButtonItemVisibilityPriorityStandard API_AVAILABLE(ios(27.0), tvos(27.0), visionos(27.0)) API_UNAVAILABLE(watchos);
+UIKIT_EXTERN const UIBarButtonItemVisibilityPriority UIBarButtonItemVisibilityPriorityLow API_AVAILABLE(ios(27.0)) API_UNAVAILABLE(visionos) API_UNAVAILABLE(watchos, tvos);
+UIKIT_EXTERN const UIBarButtonItemVisibilityPriority UIBarButtonItemVisibilityPriorityHigh API_AVAILABLE(ios(27.0)) API_UNAVAILABLE(visionos) API_UNAVAILABLE(watchos, tvos);
+
@class UIImage, UIView;
UIKIT_EXTERN API_AVAILABLE(ios(2.0)) API_UNAVAILABLE(watchos) NS_SWIFT_UI_ACTOR
@@ -140,6 +146,18 @@
/// Whether or not symbol animations are enabled for this bar button item.
@property (nonatomic, readwrite, assign, getter=isSymbolAnimationEnabled) BOOL symbolAnimationEnabled API_AVAILABLE(ios(17.0), tvos(17.0)) API_UNAVAILABLE(watchos);
+
+/// Visibility priority for this item when placed in a button bar.
+///
+/// Items with higher priority values are preserved longer when space is constrained.
+/// When an item is placed in an implicit group, the group inherits this priority.
+///
+/// The default value is `UIBarButtonItemVisibilityPriorityStandard`.
+@property (nonatomic, readwrite, assign) UIBarButtonItemVisibilityPriority visibilityPriority API_AVAILABLE(ios(27.0), tvos(27.0), visionos(27.0)) API_UNAVAILABLE(watchos);
+
+/// Whether the standard padding around the item should be removed.
+/// Default: NO
+@property (nonatomic, readwrite, getter=isPaddingRemoved, setter=setPaddingRemoved:) BOOL paddingRemoved API_AVAILABLE(ios(27.0), tvos(27.0), visionos(27.0)) API_UNAVAILABLE(watchos);
/// A UIMenuElement that should substitute for the UIBarButtonItem when displayed in a menu.
@property (nonatomic, readwrite, copy, nullable) UIMenuElement *menuRepresentation API_AVAILABLE(ios(16.0)) API_UNAVAILABLE(tvos, watchos);
diff -ruN /Applications/Xcode_26.5.0.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/UIBarButtonItemBadge.h /Applications/Xcode_27.0.0-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/UIBarButtonItemBadge.h
--- /Applications/Xcode_26.5.0.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/UIBarButtonItemBadge.h 2026-04-18 23:02:33
+++ /Applications/Xcode_27.0.0-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/UIBarButtonItemBadge.h 2026-05-30 22:33:45
@@ -45,7 +45,7 @@
@end
@interface UIBarButtonItem (Badging)
-/// Sets a badge on the bar button item. Currently only supported in navigation bars.
+/// Sets a badge on the bar button item. Supported in navigation bars and toolbars.
@property (nonatomic, readwrite, nullable, strong) UIBarButtonItemBadge *badge NS_REFINED_FOR_SWIFT API_AVAILABLE(ios(26.0)) API_UNAVAILABLE(visionos) API_UNAVAILABLE(tvos, watchos);
@end
diff -ruN /Applications/Xcode_26.5.0.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/UIButtonConfiguration.h /Applications/Xcode_27.0.0-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/UIButtonConfiguration.h
--- /Applications/Xcode_26.5.0.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/UIButtonConfiguration.h 2026-04-18 23:02:34
+++ /Applications/Xcode_27.0.0-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/UIButtonConfiguration.h 2026-05-23 02:56:50
@@ -8,7 +8,12 @@
#import <Foundation/Foundation.h>
#import <UIKit/UIBackgroundConfiguration.h>
+#if __has_include(<UIFoundation/NSParagraphStyle.h>)
+#import <UIFoundation/NSParagraphStyle.h>
+#else
#import <UIKit/NSParagraphStyle.h>
+#endif
+
@class UIImageSymbolConfiguration;
@class UIButton;
diff -ruN /Applications/Xcode_26.5.0.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/UICollectionView.h /Applications/Xcode_27.0.0-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/UICollectionView.h
--- /Applications/Xcode_26.5.0.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/UICollectionView.h 2026-04-18 23:02:35
+++ /Applications/Xcode_27.0.0-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/UICollectionView.h 2026-05-30 22:33:47
@@ -530,7 +530,7 @@
// Drag & Drop
-#if TARGET_OS_IOS
+#if TARGET_OS_IOS || TARGET_OS_OSX
@interface UICollectionView (UIDragAndDrop) <UISpringLoadedInteractionSupporting>
@end
#endif
diff -ruN /Applications/Xcode_26.5.0.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/UIContentUnavailableTextProperties.h /Applications/Xcode_27.0.0-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/UIContentUnavailableTextProperties.h
--- /Applications/Xcode_26.5.0.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/UIContentUnavailableTextProperties.h 2026-04-18 23:02:32
+++ /Applications/Xcode_27.0.0-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/UIContentUnavailableTextProperties.h 2026-05-30 22:33:44
@@ -8,7 +8,12 @@
#import <Foundation/Foundation.h>
#import <UIKit/UIKitDefines.h>
+#if __has_include(<UIFoundation/NSParagraphStyle.h>)
+#import <UIFoundation/NSParagraphStyle.h>
+#else
#import <UIKit/NSParagraphStyle.h>
+#endif
+
NS_HEADER_AUDIT_BEGIN(nullability, sendability)
diff -ruN /Applications/Xcode_26.5.0.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/UIContextMenuConfiguration.h /Applications/Xcode_27.0.0-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/UIContextMenuConfiguration.h
--- /Applications/Xcode_26.5.0.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/UIContextMenuConfiguration.h 2026-04-18 23:02:32
+++ /Applications/Xcode_27.0.0-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/UIContextMenuConfiguration.h 2026-05-30 22:33:44
@@ -52,6 +52,9 @@
/// Preferred menu element ordering strategy for this menu.
@property (nonatomic) UIContextMenuConfigurationElementOrder preferredMenuElementOrder API_AVAILABLE(ios(16.0), tvos(17.0));
+/// Determines if the context menu should enable type-select. This is disabled for certain menus to avoid conflicting with typing. Default is YES.
+@property (nonatomic) BOOL allowsTypeSelect API_AVAILABLE(ios(27.0), visionos(27.0)) API_UNAVAILABLE(tvos);
+
/*!
* @abstract Returns a UIContextMenuConfiguration.
*
diff -ruN /Applications/Xcode_26.5.0.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/UIDocumentViewControllerLaunchOptions.h /Applications/Xcode_27.0.0-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/UIDocumentViewControllerLaunchOptions.h
--- /Applications/Xcode_26.5.0.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/UIDocumentViewControllerLaunchOptions.h 2026-04-18 23:02:36
+++ /Applications/Xcode_27.0.0-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/UIDocumentViewControllerLaunchOptions.h 2026-05-30 22:33:48
@@ -24,6 +24,10 @@
/// The title of the view. Default is the application's name.
@property (nonatomic, copy) NSString *title;
+/// The subtitle of the view. Default is `nil`.
+/// If `nil`, no subtitle will be displayed.
+@property (nonatomic, copy, nullable) NSString *subtitle API_AVAILABLE(ios(27.0));
+
/// The primary action.
@property (nonatomic, copy, nullable) UIAction *primaryAction;
diff -ruN /Applications/Xcode_26.5.0.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/UIDragInteraction.h /Applications/Xcode_27.0.0-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/UIDragInteraction.h
--- /Applications/Xcode_26.5.0.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/UIDragInteraction.h 2026-04-18 20:17:50
+++ /Applications/Xcode_27.0.0-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/UIDragInteraction.h 2026-05-29 01:33:27
@@ -31,33 +31,55 @@
@end
+/// Determines the gesture lift behaviors for the interaction.
+typedef NS_ENUM(NSUInteger, UIDragLiftBehavior) {
+ /// The default lift behavior, which configures the `UIDragInteraction` with the default timing parameters.
+ UIDragLiftBehaviorDefault = 0,
+ /// An extended lift behavior, which has a longer lift delay for the `UIDragInteraction`, allowing better disambiguation of
+ /// gestures in the same view. This is useful for 'canvas' like views where they can be many gestures involved in the manipulation
+ /// of objects on screen. For extended lifts, when a second touch is recognized in the view, the gesture will be cancelled.
+ UIDragLiftBehaviorExtended = 1,
+} API_AVAILABLE(ios(27.0)) API_UNAVAILABLE(watchos, tvos) NS_SWIFT_NAME(UIDragInteraction.LiftBehavior);
+
UIKIT_EXTERN API_AVAILABLE(ios(11.0)) API_UNAVAILABLE(watchos, tvos) NS_SWIFT_UI_ACTOR
@interface UIDragInteraction : NSObject <UIInteraction>
-- (instancetype)initWithDelegate:(id<UIDragInteractionDelegate>)delegate NS_DESIGNATED_INITIALIZER;
-- (instancetype)init NS_UNAVAILABLE;
-+ (instancetype)new NS_UNAVAILABLE;
-
+/// The object managing the delegate for the interaction.
@property (nonatomic, nullable, readonly, weak) id<UIDragInteractionDelegate> delegate;
-/* Determines whether this interaction allows recognition of other gesture recognizers during the lift.
- * If true, the interaction will be cancelled during the lift if another gesture recognizer recognizes.
- * If false (the default value), all competing gesture recognizers will be failed when the lift begins.
- * Note: UILongPressGestureRecognizers are always delayed and simultaneous during the lift.
- */
-@property (nonatomic) BOOL allowsSimultaneousRecognitionDuringLift;
+/// Determines whether this interaction allows recognition of other gesture recognizers during the lift.
+/// If true, the interaction will be cancelled during the lift if another gesture recognizer recognizes.
+/// If false (the default value), all competing gesture recognizers will be failed when the lift begins.
+/// Note: `UILongPressGestureRecognizers` are always delayed and simultaneous during the lift.
+@property (nonatomic, assign) BOOL allowsSimultaneousRecognitionDuringLift;
-/* Whether this interaction is allowed to drag.
- * If true, the interaction will use touches to begin drags and/or add items to drags.
- * If false, it will ignore touches.
- */
+/// For pointer-initiated drags, whether to wait for the lift delay. Similar to `liftBehavior`, this is useful to disambiguate drag initiation
+/// gestures alongside other gestures in the same view.
+///
+/// If `YES`, then when the pointer moves past its activation hysteresis , the drag will begin, regardless of whether the lift delay has elapsed.
+/// If `NO`, then just like the touch-based drag initiation gesture, the drag waits for the lift delay to elapse first, then checks for the activation hysteresis.
+///
+/// Default is `YES` on iOS, and `NO` on macOS.
+@property (nonatomic, assign) BOOL allowsPointerDragBeforeLiftDelay API_AVAILABLE(ios(27.0));
+
+/// Determines the lift behavior for the drag gesture.
+///
+/// The default value is `UIDragLiftBehaviorDefault`
+@property (nonatomic, assign) UIDragLiftBehavior liftBehavior API_AVAILABLE(ios(27.0));
+
+/// Whether this interaction is allowed to drag.
+/// If true, the interaction will use touches to begin drags and/or add items to drags.
+/// If false, it will ignore touches.
@property (nonatomic, getter=isEnabled) BOOL enabled;
-/* The default value of `enabled` in newly created UIDragInteractions.
- * The value depends on the device.
- */
+/// The default value of `enabled` in newly created `UIDragInteraction` instances.
+/// The value depends on the device.
@property (class, nonatomic, readonly, getter=isEnabledByDefault) BOOL enabledByDefault;
+
+- (instancetype)initWithDelegate:(id<UIDragInteractionDelegate>)delegate NS_DESIGNATED_INITIALIZER;
+- (instancetype)init NS_UNAVAILABLE;
++ (instancetype)new NS_UNAVAILABLE;
@end
diff -ruN /Applications/Xcode_26.5.0.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/UIFocus.h /Applications/Xcode_27.0.0-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/UIFocus.h
--- /Applications/Xcode_26.5.0.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/UIFocus.h 2026-04-18 23:07:45
+++ /Applications/Xcode_27.0.0-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/UIFocus.h 2026-05-30 22:55:06
@@ -1,4 +1,10 @@
#if (defined(USE_UIKIT_PUBLIC_HEADERS) && USE_UIKIT_PUBLIC_HEADERS) || !__has_include(<UIKitCore/UIFocus.h>)
+#if __FOCUSENGINE_BUILDING_FOCUSENGINE__
+#import <FocusEngine/UIFocus.h>
+#import <UIKit/UIFocusGuide.h>
+#import <UIKit/UIFocusAnimationCoordinator.h>
+#import <UIKit/UIFocusUpdateContext+UIKitAdditions.h>
+#else
//
// UIFocus.h
// UIKit
@@ -190,21 +196,22 @@
@end
-UIKIT_EXTERN NSNotificationName const UIFocusDidUpdateNotification API_AVAILABLE(ios(11.0), tvos(11.0)) API_UNAVAILABLE(watchos) NS_SWIFT_NONISOLATED;
-UIKIT_EXTERN NSNotificationName const UIFocusMovementDidFailNotification API_AVAILABLE(ios(11.0), tvos(11.0)) API_UNAVAILABLE(watchos) NS_SWIFT_NONISOLATED;
+UIKIT_EXTERN NSNotificationName const UIFocusDidUpdateNotification API_AVAILABLE(ios(11.0), tvos(11.0)) API_UNAVAILABLE(watchos) NS_SWIFT_NONISOLATED NS_SWIFT_NAME(UIFocusSystem.didUpdateNotification);
+UIKIT_EXTERN NSNotificationName const UIFocusMovementDidFailNotification API_AVAILABLE(ios(11.0), tvos(11.0)) API_UNAVAILABLE(watchos) NS_SWIFT_NONISOLATED NS_SWIFT_NAME(UIFocusSystem.movementDidFailNotification);
-UIKIT_EXTERN NSString * const UIFocusUpdateContextKey API_AVAILABLE(ios(11.0), tvos(11.0)) API_UNAVAILABLE(watchos);
-UIKIT_EXTERN NSString * const UIFocusUpdateAnimationCoordinatorKey API_AVAILABLE(ios(11.0), tvos(11.0)) API_UNAVAILABLE(watchos);
+UIKIT_EXTERN NSString * const UIFocusUpdateContextKey API_AVAILABLE(ios(11.0), tvos(11.0)) API_UNAVAILABLE(watchos) NS_SWIFT_NAME(UIFocusSystem.focusUpdateContextUserInfoKey);
+UIKIT_EXTERN NSString * const UIFocusUpdateAnimationCoordinatorKey API_AVAILABLE(ios(11.0), tvos(11.0)) API_UNAVAILABLE(watchos) NS_SWIFT_NAME(UIFocusSystem.animationCoordinatorUserInfoKey);
/// Sound identifier for disabling sound during a focus update.
-UIKIT_EXTERN UIFocusSoundIdentifier const UIFocusSoundIdentifierNone API_AVAILABLE(tvos(11.0)) API_UNAVAILABLE(ios, watchos, visionos);
+UIKIT_EXTERN UIFocusSoundIdentifier const UIFocusSoundIdentifierNone API_AVAILABLE(tvos(11.0)) API_UNAVAILABLE(ios, watchos, visionos, macos);
/// Sound identifier for playing the default sound during a focus update.
-UIKIT_EXTERN UIFocusSoundIdentifier const UIFocusSoundIdentifierDefault API_AVAILABLE(tvos(11.0)) API_UNAVAILABLE(ios, watchos, visionos);
+UIKIT_EXTERN UIFocusSoundIdentifier const UIFocusSoundIdentifierDefault API_AVAILABLE(tvos(11.0)) API_UNAVAILABLE(ios, watchos, visionos, macos);
NS_HEADER_AUDIT_END(nullability, sendability)
#import <UIKit/UIFocusUpdateContext+UIKitAdditions.h>
+#endif // else __FOCUSENGINE_BUILDING_FOCUSENGINE__
#else
#import <UIKitCore/UIFocus.h>
diff -ruN /Applications/Xcode_26.5.0.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/UIFocusDebugger.h /Applications/Xcode_27.0.0-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/UIFocusDebugger.h
--- /Applications/Xcode_26.5.0.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/UIFocusDebugger.h 2026-04-18 23:02:34
+++ /Applications/Xcode_27.0.0-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/UIFocusDebugger.h 2026-05-30 22:33:46
@@ -1,4 +1,7 @@
#if (defined(USE_UIKIT_PUBLIC_HEADERS) && USE_UIKIT_PUBLIC_HEADERS) || !__has_include(<UIKitCore/UIFocusDebugger.h>)
+#if __FOCUSENGINE_BUILDING_FOCUSENGINE__
+#import <FocusEngine/UIFocusDebugger.h>
+#else
//
// UIFocusDebugger.h
// UIKit Framework
@@ -56,6 +59,7 @@
@end
NS_HEADER_AUDIT_END(nullability, sendability)
+#endif // else __FOCUSENGINE_BUILDING_FOCUSENGINE__
#else
#import <UIKitCore/UIFocusDebugger.h>
diff -ruN /Applications/Xcode_26.5.0.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/UIFocusDefines.h /Applications/Xcode_27.0.0-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/UIFocusDefines.h
--- /Applications/Xcode_26.5.0.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/UIFocusDefines.h 2026-04-18 23:02:25
+++ /Applications/Xcode_27.0.0-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/UIFocusDefines.h 2026-05-30 22:33:37
@@ -1,4 +1,7 @@
#if (defined(USE_UIKIT_PUBLIC_HEADERS) && USE_UIKIT_PUBLIC_HEADERS) || !__has_include(<UIKitCore/UIFocusDefines.h>)
+#if __FOCUSENGINE_BUILDING_FOCUSENGINE__
+#import <FocusEngine/UIFocusDefines.h>
+#else
//
// UIFocusDefines.h
// UIKit
@@ -9,6 +12,7 @@
#import <Foundation/Foundation.h>
#import <Availability.h>
#import <UIUtilities/UIDefines.h>
+#endif // else __FOCUSENGINE_BUILDING_FOCUSENGINE__
#else
#import <UIKitCore/UIFocusDefines.h>
diff -ruN /Applications/Xcode_26.5.0.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/UIFocusMovementHint.h /Applications/Xcode_27.0.0-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/UIFocusMovementHint.h
--- /Applications/Xcode_26.5.0.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/UIFocusMovementHint.h 2026-04-18 23:02:34
+++ /Applications/Xcode_27.0.0-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/UIFocusMovementHint.h 2026-05-30 22:33:46
@@ -6,7 +6,7 @@
// Copyright © 2018 Apple Inc. All rights reserved.
//
-#import <UIKit/UIFocus.h>
+#import <UIUtilities/UIDefines.h>
#import <QuartzCore/CATransform3D.h>
/// Provides information about the current state of hinting for the focused item.
diff -ruN /Applications/Xcode_26.5.0.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/UIFocusSystem.h /Applications/Xcode_27.0.0-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/UIFocusSystem.h
--- /Applications/Xcode_26.5.0.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/UIFocusSystem.h 2026-04-18 23:02:31
+++ /Applications/Xcode_27.0.0-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/UIFocusSystem.h 2026-05-30 22:33:43
@@ -1,4 +1,8 @@
#if (defined(USE_UIKIT_PUBLIC_HEADERS) && USE_UIKIT_PUBLIC_HEADERS) || !__has_include(<UIKitCore/UIFocusSystem.h>)
+#if __FOCUSENGINE_BUILDING_FOCUSENGINE__
+#import <FocusEngine/UIFocusSystem.h>
+#import <UIKit/UIFocusSystem+UIKitAdditions.h>
+#else
//
// UIFocusSystem.h
// UIKit
@@ -38,7 +42,7 @@
- (void)updateFocusIfNeeded API_AVAILABLE(tvos(12.0), ios(12.0)) API_UNAVAILABLE(watchos);
/// Returns true if `environment` is an ancestor of `otherEnvironment`, or false if otherwise.
-+ (BOOL)environment:(id<UIFocusEnvironment>)environment containsEnvironment:(id<UIFocusEnvironment>)otherEnvironment;
++ (BOOL)environment:(id<UIFocusEnvironment>)environment containsEnvironment:(id<UIFocusEnvironment>)otherEnvironment NS_REFINED_FOR_SWIFT;
@end
@@ -46,6 +50,7 @@
#import <UIKit/UIFocusSystem+UIKitAdditions.h>
+#endif // else __FOCUSENGINE_BUILDING_FOCUSENGINE__
#else
#import <UIKitCore/UIFocusSystem.h>
diff -ruN /Applications/Xcode_26.5.0.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/UIFont.h /Applications/Xcode_27.0.0-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/UIFont.h
--- /Applications/Xcode_26.5.0.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/UIFont.h 2026-04-18 22:32:18
+++ /Applications/Xcode_27.0.0-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/UIFont.h 2026-05-23 02:56:57
@@ -1,4 +1,5 @@
#if (defined(USE_UIKIT_PUBLIC_HEADERS) && USE_UIKIT_PUBLIC_HEADERS) || !__has_include(<UIKitCore/UIFont.h>)
+#if (defined(USE_UIKIT_PUBLIC_HEADERS) && USE_UIKIT_PUBLIC_HEADERS) || !__has_include(<UIFoundation/UIFont.h>)
//
// UIFont.h
// UIKit
@@ -76,8 +77,9 @@
@end
NS_HEADER_AUDIT_END(nullability, sendability)
-
-
+#else
+#import <UIFoundation/UIFont.h>
+#endif
#else
#import <UIKitCore/UIFont.h>
diff -ruN /Applications/Xcode_26.5.0.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/UIFontDescriptor.h /Applications/Xcode_27.0.0-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/UIFontDescriptor.h
--- /Applications/Xcode_26.5.0.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/UIFontDescriptor.h 2026-04-19 00:46:16
+++ /Applications/Xcode_27.0.0-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/UIFontDescriptor.h 2026-05-30 22:33:47
@@ -1,4 +1,5 @@
#if (defined(USE_UIKIT_PUBLIC_HEADERS) && USE_UIKIT_PUBLIC_HEADERS) || !__has_include(<UIKitCore/UIFontDescriptor.h>)
+#if (defined(USE_UIKIT_PUBLIC_HEADERS) && USE_UIKIT_PUBLIC_HEADERS) || !__has_include(<UIFoundation/UIFontDescriptor.h>)
//
// UIFontDescriptor.h
// UIKit
@@ -188,6 +189,9 @@
NS_HEADER_AUDIT_END(nullability, sendability)
+#else
+#import <UIFoundation/UIFontDescriptor.h>
+#endif
#else
#import <UIKitCore/UIFontDescriptor.h>
diff -ruN /Applications/Xcode_26.5.0.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/UIFoundation.h /Applications/Xcode_27.0.0-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/UIFoundation.h
--- /Applications/Xcode_26.5.0.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/UIFoundation.h 2026-04-18 22:45:26
+++ /Applications/Xcode_27.0.0-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/UIFoundation.h 2026-05-30 22:15:05
@@ -9,15 +9,23 @@
#import <UIKit/NSTextList.h>
#import <UIKit/NSTextAttachment.h>
#import <UIKit/NSAdaptiveImageGlyph.h>
-
-#if !TARGET_OS_WATCH || __has_include(<UIKit/NSTextElement.h>)
#import <UIKit/NSTextElement.h>
#import <UIKit/NSTextSelection.h>
#import <UIKit/NSTextSelectionNavigation.h>
+#import <UIKit/NSTextViewportRenderingSurface.h>
#import <UIKit/NSTextViewportLayoutController.h>
#import <UIKit/NSTextContentManager.h>
#import <UIKit/NSTextLayoutFragment.h>
#import <UIKit/NSTextLayoutManager.h>
#import <UIKit/NSTextLineFragment.h>
#import <UIKit/NSTextListElement.h>
-#endif /* !TARGET_OS_WATCH || __has_include(<UIKit/NSTextElement.h>) */
+#import <UIKit/NSText.h>
+#import <UIKit/NSParagraphStyle.h>
+#import <UIKit/NSStringDrawing.h>
+#import <UIKit/NSTextContainer.h>
+
+#import <UIKit/NSShadow.h>
+#import <UIKit/NSTextStorage.h>
+#import <UIKit/NSAttributedString.h>
+#import <UIKit/NSTextTable.h>
+#import <UIKit/NSLayoutManager.h>
diff -ruN /Applications/Xcode_26.5.0.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/UIHoverGestureRecognizer.h /Applications/Xcode_27.0.0-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/UIHoverGestureRecognizer.h
--- /Applications/Xcode_26.5.0.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/UIHoverGestureRecognizer.h 2026-04-18 23:02:34
+++ /Applications/Xcode_27.0.0-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/UIHoverGestureRecognizer.h 2026-05-30 22:33:46
@@ -41,7 +41,6 @@
// for the Pencil Pro is relative to the angle it has when the pencil becomes active/wakes up.
@property(nonatomic, readonly) CGFloat rollAngle API_AVAILABLE(ios(17.5)) API_UNAVAILABLE(watchos, tvos);
-
@end
#else
diff -ruN /Applications/Xcode_26.5.0.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/UIKit.h /Applications/Xcode_27.0.0-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/UIKit.h
--- /Applications/Xcode_26.5.0.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/UIKit.h 2026-04-18 22:45:26
+++ /Applications/Xcode_27.0.0-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/UIKit.h 2026-05-30 22:15:05
@@ -6,16 +6,11 @@
//
#import <Foundation/Foundation.h>
-#import <UIKit/UIKitCore.h>
-
#if __has_include(<UIKit/UIFoundation.h>)
#import <UIKit/UIFoundation.h>
-#elif __has_include(<UIKit/NSAdaptiveImageGlyph.h>)
-#import <UIKit/NSAdaptiveImageGlyph.h>
-#import <UIKit/NSTextRange.h>
-#import <UIKit/NSTextList.h>
-#import <UIKit/NSTextAttachment.h>
#endif
+
+#import <UIKit/UIKitCore.h>
#if __has_include(<UIKit/DocumentManager.h>)
#import <UIKit/DocumentManager.h>
diff -ruN /Applications/Xcode_26.5.0.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/UIKitCore.h /Applications/Xcode_27.0.0-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/UIKitCore.h
--- /Applications/Xcode_26.5.0.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/UIKitCore.h 2026-04-18 23:02:22
+++ /Applications/Xcode_27.0.0-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/UIKitCore.h 2026-05-23 02:19:38
@@ -22,12 +22,7 @@
#import <UIKit/UIImageSymbolConfiguration.h>
#import <UIKit/NSDataAsset.h>
#import <UIKit/UILocalNotification.h>
-#import <UIKit/NSAttributedString.h>
#import <UIKit/NSItemProvider+UIKitAdditions.h>
-#import <UIKit/NSParagraphStyle.h>
-#import <UIKit/NSShadow.h>
-#import <UIKit/NSStringDrawing.h>
-#import <UIKit/NSText.h>
#if !TARGET_OS_WATCH || (__has_include(<QuartzCore/QuartzCore.h>) && __has_include(<UIKit/UIAccelerometer.h>))
#import <UIKit/UIAccelerometer.h>
@@ -244,9 +239,6 @@
#import <UIKit/UIKeyboardLayoutGuide.h>
#import <UIKit/UITrackingLayoutGuide.h>
#import <UIKit/UIStackView.h>
-#import <UIKit/NSLayoutManager.h>
-#import <UIKit/NSTextContainer.h>
-#import <UIKit/NSTextStorage.h>
#import <UIKit/UIStateRestoration.h>
#import <UIKit/UIViewControllerTransitioning.h>
#import <UIKit/UIViewControllerTransitionCoordinator.h>
@@ -275,6 +267,7 @@
#import <UIKit/UISelectionFeedbackGenerator.h>
#import <UIKit/UIImpactFeedbackGenerator.h>
#import <UIKit/UINotificationFeedbackGenerator.h>
+#import <UIKit/UILookToScrollInteraction.h>
#import <UIKit/UICanvasFeedbackGenerator.h>
#import <UIKit/UITimingCurveProvider.h>
#import <UIKit/NSIndexPath+UIKitAdditions.h>
@@ -321,8 +314,11 @@
#import <UIKit/UISceneSessionActivationRequest.h>
#import <UIKit/UISceneActivationConditions.h>
#import <UIKit/UISceneDestructionCondition.h>
+#import <UIKit/UISceneClosureConfirmation.h>
#import <UIKit/UISceneSizeRestrictions.h>
#import <UIKit/UISceneWindowingControlStyle.h>
+#import <UIKit/UISceneAccessory.h>
+#import <UIKit/UISceneAccessoryRegistration.h>
#import <UIKit/UIWindowSceneGeometry.h>
#import <UIKit/UIWindowSceneGeometryPreferences.h>
#import <UIKit/UIWindowSceneGeometryPreferencesMac.h>
@@ -416,3 +412,15 @@
#import <UIKit/UIMessageConversationContext.h>
#import <UIKit/UIMessageConversationEntry.h>
#endif
+
+#if __has_include(<UIFoundation/NSAttributedString.h>)
+#import <UIFoundation/NSAttributedString.h>
+#import <UIFoundation/NSLayoutManager.h>
+#import <UIFoundation/NSParagraphStyle.h>
+#import <UIFoundation/NSShadow.h>
+#import <UIFoundation/NSStringDrawing.h>
+#import <UIFoundation/NSText.h>
+#import <UIFoundation/NSTextContainer.h>
+#import <UIFoundation/NSTextStorage.h>
+#endif // __has_include(<UIFoundation/NSAttributedString.h>)
+
diff -ruN /Applications/Xcode_26.5.0.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/UIListContentTextProperties.h /Applications/Xcode_27.0.0-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/UIListContentTextProperties.h
--- /Applications/Xcode_26.5.0.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/UIListContentTextProperties.h 2026-04-18 23:02:30
+++ /Applications/Xcode_27.0.0-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/UIListContentTextProperties.h 2026-05-30 22:33:41
@@ -9,7 +9,12 @@
#import <Foundation/Foundation.h>
#import <QuartzCore/QuartzCore.h>
#import <UIKit/UIConfigurationColorTransformer.h>
+#if __has_include(<UIFoundation/NSParagraphStyle.h>)
+#import <UIFoundation/NSParagraphStyle.h>
+#else
#import <UIKit/NSParagraphStyle.h>
+#endif
+
NS_HEADER_AUDIT_BEGIN(nullability, sendability)
diff -ruN /Applications/Xcode_26.5.0.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/UILookToScrollInteraction.h /Applications/Xcode_27.0.0-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/UILookToScrollInteraction.h
--- /Applications/Xcode_26.5.0.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/UILookToScrollInteraction.h 1969-12-31 19:00:00
+++ /Applications/Xcode_27.0.0-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/UILookToScrollInteraction.h 2026-05-30 22:33:42
@@ -0,0 +1,29 @@
+#if (defined(USE_UIKIT_PUBLIC_HEADERS) && USE_UIKIT_PUBLIC_HEADERS) || !__has_include(<UIKitCore/UILookToScrollInteraction.h>)
+//
+// UILookToScrollInteraction.h
+// UIKit
+//
+// Copyright © 2025 Apple Inc. All rights reserved.
+//
+
+#import <Foundation/Foundation.h>
+#import <UIKit/UIKitDefines.h>
+#import <UIKit/UIInteraction.h>
+
+NS_HEADER_AUDIT_BEGIN(nullability, sendability)
+
+UIKIT_EXTERN API_AVAILABLE(visionos(27.0)) API_UNAVAILABLE(ios, watchos, tvos)
+@interface UILookToScrollInteraction : NSObject <UIInteraction>
+
+/// An interaction which specifies that the receiver should not trigger Look to Scroll.
++ (instancetype)exclusionRegionInteraction;
+- (instancetype)init NS_UNAVAILABLE;
++ (instancetype)new NS_UNAVAILABLE;
+
+@end
+
+NS_HEADER_AUDIT_END(nullability, sendability)
+
+#else
+#import <UIKitCore/UILookToScrollInteraction.h>
+#endif
diff -ruN /Applications/Xcode_26.5.0.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/UIMenuElement.h /Applications/Xcode_27.0.0-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/UIMenuElement.h
--- /Applications/Xcode_26.5.0.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/UIMenuElement.h 2026-04-18 23:02:31
+++ /Applications/Xcode_27.0.0-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/UIMenuElement.h 2026-05-30 22:33:43
@@ -38,6 +38,18 @@
UIMenuElementRepeatBehaviorNonRepeatable,
} API_AVAILABLE(ios(26.0)) API_UNAVAILABLE(watchos) NS_SWIFT_NAME(UIMenuElement.RepeatBehavior);
+/// Visibility options for a menu element's image.
+typedef NS_ENUM(NSInteger, UIMenuElementImageVisibility) {
+ /// The element's image visibility is determined by the platform and context.
+ UIMenuElementImageVisibilityAutomatic = 0,
+ /// The element prefers its image to be visible, even in contexts where
+ /// images are not shown by default.
+ UIMenuElementImageVisibilityVisible = 1,
+ /// The element prefers its image to be hidden, even in contexts where
+ /// images are shown by default.
+ UIMenuElementImageVisibilityHidden = 2,
+} API_AVAILABLE(ios(27.0)) API_UNAVAILABLE(watchos) NS_SWIFT_NAME(UIMenuElement.ImageVisibility);
+
NS_HEADER_AUDIT_BEGIN(nullability, sendability)
UIKIT_EXTERN API_AVAILABLE(ios(13.0)) API_UNAVAILABLE(watchos) NS_SWIFT_UI_ACTOR
@@ -51,6 +63,14 @@
/// Image to be displayed alongside the element's title.
@property (nonatomic, nullable, readonly) UIImage *image;
+
+/// The preferred visibility of the element's image.
+@property (nonatomic) UIMenuElementImageVisibility preferredImageVisibility API_AVAILABLE(ios(27.0)) API_UNAVAILABLE(watchos);
+
+/// This block gets called when the element is being highlighted or unhighlighted in a menu.
+/// @param element The element being highlighted or unhighlighted.
+/// @param isHighlighted YES when the element is highlighted, NO when unhighlighted.
+@property (nonatomic, copy, nullable) void (^highlightStateUpdateHandler)(UIMenuElement *element, BOOL isHighlighted) API_AVAILABLE(ios(27.0)) API_UNAVAILABLE(watchos);
- (nullable instancetype)initWithCoder:(NSCoder *)coder NS_DESIGNATED_INITIALIZER;
diff -ruN /Applications/Xcode_26.5.0.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/UIMenuLeaf.h /Applications/Xcode_27.0.0-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/UIMenuLeaf.h
--- /Applications/Xcode_26.5.0.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/UIMenuLeaf.h 2026-04-18 23:02:35
+++ /Applications/Xcode_27.0.0-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/UIMenuLeaf.h 2026-05-30 22:33:47
@@ -20,11 +20,17 @@
/// Short display title.
@property (nonatomic, copy) NSString *title;
+/// The element's subtitle.
+@property (nullable, nonatomic, copy) NSString *subtitle;
+
/// Image that can appear next to this element.
@property (nullable, nonatomic, copy) UIImage *image;
/// Image that can appear next to this action when the `state` is `UIMenuElementStateOn`
@property (nullable, nonatomic, copy) UIImage *selectedImage API_AVAILABLE(ios(17.0)) API_UNAVAILABLE(watchos);
+
+/// The preferred visibility of the element’s image.
+@property (nonatomic) UIMenuElementImageVisibility preferredImageVisibility API_AVAILABLE(ios(27.0)) API_UNAVAILABLE(watchos);
/// Elaborated title used in keyboard shortcut overlay.
@property (nullable, nonatomic, copy) NSString *discoverabilityTitle;
diff -ruN /Applications/Xcode_26.5.0.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/UINavigationController.h /Applications/Xcode_27.0.0-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/UINavigationController.h
--- /Applications/Xcode_26.5.0.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/UINavigationController.h 2026-04-18 23:26:20
+++ /Applications/Xcode_27.0.0-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/UINavigationController.h 2026-05-29 01:33:23
@@ -81,13 +81,27 @@
@property(nullable, nonatomic, weak) id<UINavigationControllerDelegate> delegate;
-/// The interactive pop gesture recognizes on the leading screen edge and initiates an interactive pop.
-/// This property should only be used to set up failure requirements with it.
+/// The gesture recognizer that handles interactively popping the top view controller off the navigation stack
+/// when a person swipes from the leading screen edge.
+///
+/// The navigation controller installs this gesture recognizer on its view and uses it to pop the topmost view
+/// controller off the navigation stack when a person swipes horizontally from the leading edge of the screen.
+///
+/// Use this property to retrieve the gesture recognizer and tie it to the behavior of other gesture recognizers
+/// in your user interface.
@property(nullable, nonatomic, readonly) UIGestureRecognizer *interactivePopGestureRecognizer API_AVAILABLE(ios(7.0)) API_UNAVAILABLE(tvos);
-/// The interactive content pop gesture recognizes on the entire content area of the navigation controller
-/// in cases that are not covered by the interactive pop gesture recognizer and initiates an interactive pop.
-/// This property should only be used to set up failure requirements with it.
+/// The gesture recognizer that handles interactively popping the top view controller off the navigation stack
+/// when a person pans horizontally in the view.
+///
+/// The navigation controller installs this gesture recognizer on its view and uses it to interactively pop the
+/// topmost view controller off the navigation stack when a person initially pans horizontally in a leading to
+/// trailing direction in the view. It recognizes a gesture on the entire content area of the navigation controller
+/// in cases that are not covered by ``UINavigationController/interactivePopGestureRecognizer``
+/// and initiates an interactive pop.
+///
+/// Use this property to retrieve the gesture recognizer and tie it to the behavior of other gesture recognizers
+/// in your user interface.
@property(nullable, nonatomic, readonly) UIGestureRecognizer *interactiveContentPopGestureRecognizer API_AVAILABLE(ios(26.0), macCatalyst(26.0), visionos(26.0)) API_UNAVAILABLE(tvos, watchos);
- (void)showViewController:(UIViewController *)vc sender:(nullable id)sender API_AVAILABLE(ios(8.0)); // Interpreted as pushViewController:animated:
diff -ruN /Applications/Xcode_26.5.0.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/UINavigationItem.h /Applications/Xcode_27.0.0-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/UINavigationItem.h
--- /Applications/Xcode_26.5.0.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/UINavigationItem.h 2026-04-19 00:46:19
+++ /Applications/Xcode_27.0.0-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/UINavigationItem.h 2026-05-27 00:33:26
@@ -62,6 +62,26 @@
UINavigationItemStyleEditor,
} NS_SWIFT_NAME(UINavigationItem.ItemStyle) API_AVAILABLE(ios(16.0)) API_UNAVAILABLE(tvos, watchos);
+typedef NS_ENUM(NSInteger, UIBarMinimizeBehavior) {
+ /// The system determines the minimize behavior.
+ UIBarMinimizeBehaviorAutomatic = 0,
+ /// Bar minimization is disabled.
+ UIBarMinimizeBehaviorNever API_AVAILABLE(ios(27.0)) API_UNAVAILABLE(visionos) API_UNAVAILABLE(watchos, tvos),
+ /// Minimize when the user scrolls down.
+ UIBarMinimizeBehaviorOnScrollDown API_AVAILABLE(ios(27.0)) API_UNAVAILABLE(visionos) API_UNAVAILABLE(watchos, tvos),
+ /// Minimize when the user scrolls up.
+ UIBarMinimizeBehaviorOnScrollUp API_AVAILABLE(ios(27.0)) API_UNAVAILABLE(visionos) API_UNAVAILABLE(watchos, tvos),
+} API_AVAILABLE(ios(27.0), tvos(27.0), visionos(27.0)) API_UNAVAILABLE(watchos);
+
+typedef NS_ENUM(NSInteger, UIBarMinimizationSafeAreaAdjustment) {
+ /// The system determines the safe area adjustment.
+ UIBarMinimizationSafeAreaAdjustmentAutomatic = 0,
+ /// The safe area adjusts as bars minimize, allowing content to reflow.
+ UIBarMinimizationSafeAreaAdjustmentEnabled API_AVAILABLE(ios(27.0)) API_UNAVAILABLE(visionos) API_UNAVAILABLE(watchos, tvos),
+ /// The safe area remains unchanged as bars minimize.
+ UIBarMinimizationSafeAreaAdjustmentDisabled API_AVAILABLE(ios(27.0)) API_UNAVAILABLE(visionos) API_UNAVAILABLE(watchos, tvos),
+} API_AVAILABLE(ios(27.0), tvos(27.0), visionos(27.0)) API_UNAVAILABLE(watchos);
+
UIKIT_EXTERN API_AVAILABLE(ios(16.0)) API_UNAVAILABLE(tvos, watchos) NS_SWIFT_UI_ACTOR
@protocol UINavigationItemRenameDelegate <NSObject>
@@ -242,11 +262,10 @@
/// The realized placement. Only valid if a search controller has been assigned to this item.
@property (nonatomic, readonly, assign) UINavigationItemSearchBarPlacement searchBarPlacement API_AVAILABLE(ios(16.0)) API_UNAVAILABLE(tvos, watchos);
-/// When `searchBarPlacement` is `.integrated` or `.integratedButton` and a search controller is present, use this bar button item in the view controller's `toolbarItems` to control the placement of the search bar among them when the search bar is appearing in the UIToolbar on iPhone.
-/// Without this bar button item, the positioning for the search bar defaults to trailingmost for the UIToolbar case.
-/// This bar button item will be ignored during toolbar layout if `searchController` is `nil`.
-/// UIBarButtonItemGroup will throw an NSInvalidArgumentException when this bar button item is included in its initialization.
-/// UINavigationItem will throw an NSInvalidArgumentException when this bar button item is included in leftBarButtonItems or rightBarButtonItems.
+/// When `searchBarPlacement` is `.integrated` or `.integratedButton` and a search controller is present, use this bar button item in `leadingItemGroups`, `centerItemGroups`, `trailingItemGroups`, `leftBarButtonItems`, `rightBarButtonItems`, or the view controller's `toolbarItems` to control the placement of the search bar among other items.
+/// Without this bar button item, the positioning for the search bar defaults to trailingmost for the UIToolbar case, or automatic for the navigation bar case.
+/// This bar button item will be ignored during layout if `searchController` is `nil`.
+/// When placed in a navigation bar item group, all other navigation bar content will be hidden during active search.
@property (nonatomic, readonly, strong) UIBarButtonItem *searchBarPlacementBarButtonItem API_AVAILABLE(ios(26.0)) API_UNAVAILABLE(tvos, watchos, visionos);
/// Defaults to `YES`
@@ -270,6 +289,25 @@
@property (nonatomic, readwrite, copy, nullable) UINavigationBarAppearance *scrollEdgeAppearance API_AVAILABLE(ios(13.0)) API_UNAVAILABLE(watchos);
/// When set and this item is topmost, overrides the hosting navigation bar's compactScrollEdgeAppearance. See UINavigationBar.h for further details.
@property (nonatomic, readwrite, copy, nullable) UINavigationBarAppearance *compactScrollEdgeAppearance API_AVAILABLE(ios(15.0)) API_UNAVAILABLE(watchos);
+
+/// The minimize behavior for the navigation bar.
+///
+/// The default value is ``UIBarMinimizeBehavior/automatic``.
+/// When the navigation bar minimizes, an integrated top tab bar
+/// will also minimize.
+///
+/// By default, the safe area adjusts as the navigation bar minimizes.
+/// Use ``barMinimizationSafeAreaAdjustment`` to customize this.
+@property (nonatomic, readwrite, assign) UIBarMinimizeBehavior barMinimizeBehavior API_AVAILABLE(ios(27.0), tvos(27.0), visionos(27.0)) API_UNAVAILABLE(watchos);
+
+/// The safe area adjustment during navigation bar minimization.
+///
+/// Currently, only the navigation bar supports customizing the safe
+/// area adjustment.
+///
+/// The default value is ``UIBarMinimizationSafeAreaAdjustment/automatic``.
+@property (nonatomic, readwrite, assign) UIBarMinimizationSafeAreaAdjustment barMinimizationSafeAreaAdjustment API_AVAILABLE(ios(27.0), tvos(27.0), visionos(27.0)) API_UNAVAILABLE(watchos);
+
@end
NS_HEADER_AUDIT_END(nullability, sendability)
diff -ruN /Applications/Xcode_26.5.0.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/UIPopoverPresentationControllerSourceItem.h /Applications/Xcode_27.0.0-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/UIPopoverPresentationControllerSourceItem.h
--- /Applications/Xcode_26.5.0.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/UIPopoverPresentationControllerSourceItem.h 2026-04-18 23:02:37
+++ /Applications/Xcode_27.0.0-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/UIPopoverPresentationControllerSourceItem.h 2026-05-30 22:33:50
@@ -12,10 +12,11 @@
#import <UIKit/UILayoutGuide.h>
#import <UIKit/UIBarButtonItem.h>
#import <UIKit/UITabBarItem.h>
+#import <TargetConditionals.h>
-#if TARGET_OS_MACCATALYST || TARGET_OS_OSX
+#if TARGET_OS_OSX || TARGET_OS_MACCATALYST
#import <AppKit/NSToolbarItem.h>
-#endif // TARGET_OS_MACCATALYST
+#endif // TARGET_OS_OSX || TARGET_OS_MACCATALYST
NS_HEADER_AUDIT_BEGIN(nullability, sendability)
@@ -42,11 +43,11 @@
@interface UITabBarItem (UIPopoverPresentationControllerSourceItem) <UIPopoverPresentationControllerSourceItem>
@end
-#if TARGET_OS_MACCATALYST || TARGET_OS_OSX
+#if TARGET_OS_OSX || TARGET_OS_MACCATALYST
API_AVAILABLE(macCatalyst(16.0))
@interface NSToolbarItem (UIPopoverPresentationControllerSourceItem) <UIPopoverPresentationControllerSourceItem>
@end
-#endif // TARGET_OS_MACCATALYST
+#endif // TARGET_OS_OSX || TARGET_OS_MACCATALYST
NS_HEADER_AUDIT_END(nullability, sendability)
diff -ruN /Applications/Xcode_26.5.0.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/UISceneAccessory.h /Applications/Xcode_27.0.0-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/UISceneAccessory.h
--- /Applications/Xcode_26.5.0.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/UISceneAccessory.h 1969-12-31 19:00:00
+++ /Applications/Xcode_27.0.0-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/UISceneAccessory.h 2026-05-30 22:33:41
@@ -0,0 +1,60 @@
+#if (defined(USE_UIKIT_PUBLIC_HEADERS) && USE_UIKIT_PUBLIC_HEADERS) || !__has_include(<UIKitCore/UISceneAccessory.h>)
+//
+// UISceneAccessory.h
+// UIKit
+//
+// Copyright © 2026 Apple Inc. All rights reserved.
+//
+
+#import <Foundation/Foundation.h>
+#import <UIKit/UIKitDefines.h>
+#import <UIKit/UIViewController.h>
+#import <UIKit/UISceneConfiguration.h>
+
+NS_HEADER_AUDIT_BEGIN(nullability, sendability)
+
+/// A type which can be used to register for a specific type of scene accessory presentation.
+///
+/// A scene accessory declares supplementary content that the system presents on the app's behalf when an
+/// associated piece of system functionality becomes available, for example when an external display is
+/// connected. The app declares what content to provide; the system decides when and
+/// where to present it. Scene accessories enhance the app's experience when available, but the app must
+/// remain fully functional without them.
+///
+/// Use an instance of this type along with `UIViewController.registerSceneAccessory(_:)`.
+UIKIT_EXTERN NS_SWIFT_UI_ACTOR
+API_AVAILABLE(ios(27.0))
+API_UNAVAILABLE(macCatalyst, tvos, visionos, watchos)
+@interface UISceneAccessory : NSObject
+
+/// Creates a new scene accessory configuration for presenting non-interactive content
+/// on an external display.
+///
+/// When the display connects, the scene accessory's content may be presented on it.
+///
+/// - Parameter sceneConfiguration: A scene configuration value with delegate type defined for it.
++ (instancetype)externalNonInteractiveSceneAccessoryWithConfiguration:(UISceneConfiguration *)sceneConfiguration NS_SWIFT_NAME(externalNonInteractive(sceneConfiguration:));
+
+/// Creates a new scene accessory configuration for presenting non-interactive content
+/// on an external display.
+///
+/// When the display connects, the scene accessory's content may be presented on it.
+///
+/// This variant accepts a `userInfo` object to pass additional context to the scene delegate
+/// upon connection. The `userInfo` object is accessible in the corresponding scene via
+/// ``UISceneConnectionOptions.sceneAccessoryUserInfo``.
+///
+/// - Parameters:
+/// - sceneConfiguration: A scene configuration value with delegate type defined for it.
+/// - userInfo: An object that can be used to pass additional context to the scene delegate upon connection.
++ (instancetype)externalNonInteractiveSceneAccessoryWithConfiguration:(UISceneConfiguration *)sceneConfiguration userInfo:(id)userInfo NS_SWIFT_NAME(externalNonInteractive(sceneConfiguration:userInfo:));
+
+- (instancetype)init NS_UNAVAILABLE;
+
+@end
+
+NS_HEADER_AUDIT_END(nullability, sendability)
+
+#else
+#import <UIKitCore/UISceneAccessory.h>
+#endif
diff -ruN /Applications/Xcode_26.5.0.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/UISceneAccessoryRegistration.h /Applications/Xcode_27.0.0-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/UISceneAccessoryRegistration.h
--- /Applications/Xcode_26.5.0.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/UISceneAccessoryRegistration.h 1969-12-31 19:00:00
+++ /Applications/Xcode_27.0.0-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/UISceneAccessoryRegistration.h 2026-05-30 22:33:50
@@ -0,0 +1,41 @@
+#if (defined(USE_UIKIT_PUBLIC_HEADERS) && USE_UIKIT_PUBLIC_HEADERS) || !__has_include(<UIKitCore/UISceneAccessoryRegistration.h>)
+//
+// UISceneAccessoryRegistration.h
+// UIKit
+//
+// Copyright © 2026 Apple Inc. All rights reserved.
+//
+
+#import <Foundation/Foundation.h>
+#import <UIKit/UIKitDefines.h>
+
+NS_HEADER_AUDIT_BEGIN(nullability, sendability)
+
+/// A type which represents the registration for a given scene accessory.
+///
+/// Instances of this type allow for observing availability of a given scene accessory,
+/// as well as controlling whether the contents should be displayed when the system determines the scene is available.
+UIKIT_EXTERN NS_SWIFT_UI_ACTOR
+API_AVAILABLE(ios(27.0))
+API_UNAVAILABLE(macCatalyst, tvos, visionos, watchos)
+@interface UISceneAccessoryRegistration : NSObject
+/// Whether the associated scene accessory is available for display by the system or not.
+///
+/// This value is observable during the `updateProperties` and `layoutSubviews` lifecycle events.
+@property (nonatomic, readonly, getter=isAvailable) BOOL available;
+
+/// Whether the content defined by this scene accessory should be displayed or not.
+///
+/// This value does not reflect the availability of the scene accessory, which is determined by the system.
+@property (nonatomic, readwrite, getter=isEnabled) BOOL enabled;
+
+- (instancetype)init NS_UNAVAILABLE;
+
+@end
+
+
+NS_HEADER_AUDIT_END(nullability, sendability)
+
+#else
+#import <UIKitCore/UISceneAccessoryRegistration.h>
+#endif
diff -ruN /Applications/Xcode_26.5.0.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/UISceneClosureConfirmation.h /Applications/Xcode_27.0.0-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/UISceneClosureConfirmation.h
--- /Applications/Xcode_26.5.0.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/UISceneClosureConfirmation.h 1969-12-31 19:00:00
+++ /Applications/Xcode_27.0.0-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/UISceneClosureConfirmation.h 2026-05-30 22:33:53
@@ -0,0 +1,65 @@
+#if (defined(USE_UIKIT_PUBLIC_HEADERS) && USE_UIKIT_PUBLIC_HEADERS) || !__has_include(<UIKitCore/UISceneClosureConfirmation.h>)
+//
+// UISceneClosureConfirmation.h
+// UIKit
+//
+// Copyright © 2026 Apple Inc. All rights reserved.
+//
+
+#import <Foundation/Foundation.h>
+#import <UIKit/UISceneDefinitions.h>
+
+NS_HEADER_AUDIT_BEGIN(nullability, sendability)
+
+@class UIAlertAction;
+
+/// A configuration specifying a confirmation dialog that will be shown before a
+/// user action will result in destruction of the scene session and the disconnection of the scene.
+///
+/// By default, the confirmation dialog includes a "Close" button (which closes the scene)
+/// and a "Cancel" button (which keeps the scene open). You can replace either of these
+/// default buttons by providing custom actions. Use a `UIAlertAction` with style
+/// `.destructive` to replace the "Close" button, or style `.cancel` to replace
+/// the "Cancel" button.
+///
+/// Example:
+///
+/// A property of this type is found on `UIWindowScene`.
+/// A scene setting its `closureConfirmation` may look something like
+/// ```
+/// let closeAction = UIAlertAction(title:"End meeting for all", style:.destructive, handler: nil)
+/// let cancelAction = UIAlertAction(title:"Stay in meeting", style:.cancel, handler:nil)
+/// let myAction = UIAlertAction(title:"Leave & Assign new host", style:.default) { action in
+/// // work to do before the window closes
+/// }
+/// var closureConfirmation: UISceneClosureConfirmation =
+/// UISceneClosureConfirmation(title:"Leave or End meeting?",
+/// message:"You are the host. Would you like to end the meeting for all participants?",
+/// actions:[closeAction, cancelAction, myAction])
+///
+/// windowScene.closureConfirmation = closureConfirmation
+/// ```
+/// With this property set, upon user initiated close, the system will present the closure confirmation dialog.
+UIKIT_EXTERN UIKIT_FINAL NS_SWIFT_UI_ACTOR API_AVAILABLE(ios(27.0)) API_UNAVAILABLE(tvos, watchos, visionos)
+@interface UISceneClosureConfirmation : NSObject<NSCopying, NSSecureCoding>
+
+/// Creates a scene closure confirmation with the provided parameters.
+///
+/// - Parameters:
+/// - title: The title of the confirmation. If not provided, defaults to a generic localized title.
+/// - message: Optional descriptive text that provides more details.
+/// - actions: Actions to be included in the confirmation dialog. Close and Cancel are shown by default.
++ (instancetype)confirmationWithTitle:(nullable NSString *)title
+ message:(nullable NSString *)message
+ actions:(NSArray<UIAlertAction *> *)actions;
+
++ (instancetype)new NS_UNAVAILABLE;
+- (instancetype)init NS_UNAVAILABLE;
+
+@end
+
+NS_HEADER_AUDIT_END(nullability, sendability)
+
+#else
+#import <UIKitCore/UISceneClosureConfirmation.h>
+#endif
diff -ruN /Applications/Xcode_26.5.0.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/UISceneConfiguration.h /Applications/Xcode_27.0.0-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/UISceneConfiguration.h
--- /Applications/Xcode_26.5.0.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/UISceneConfiguration.h 2026-04-18 23:02:37
+++ /Applications/Xcode_27.0.0-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/UISceneConfiguration.h 2026-05-30 22:33:50
@@ -25,6 +25,18 @@
+ (instancetype)configurationWithName:(nullable NSString *)name sessionRole:(UISceneSessionRole)sessionRole;
- (instancetype)initWithName:(nullable NSString *)name sessionRole:(UISceneSessionRole)sessionRole NS_DESIGNATED_INITIALIZER;
+/// Creates a scene-configuration object.
+///
+/// Scene sessions created from this configuration will have their role
+/// automatically set by the system.
+- (instancetype)init;
+
+/// Creates a scene-configuration object with the specified name.
+///
+/// Scene sessions created from this configuration will have their role
+/// automatically set by the system.
+- (instancetype)initWithName:(nullable NSString *)name API_AVAILABLE(ios(27.0), macCatalyst(27.0), tvos(27.0), visionos(27.0)) API_UNAVAILABLE(watchos);
+
@property (nonatomic, nullable, readonly) NSString *name;
@property (nonatomic, readonly) UISceneSessionRole role;
diff -ruN /Applications/Xcode_26.5.0.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/UISceneOptions.h /Applications/Xcode_27.0.0-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/UISceneOptions.h
--- /Applications/Xcode_26.5.0.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/UISceneOptions.h 2026-04-19 00:46:10
+++ /Applications/Xcode_27.0.0-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/UISceneOptions.h 2026-05-30 00:01:16
@@ -45,6 +45,12 @@
// A CloudKit share metadata item to handle on connection
@property (nullable, nonatomic, readonly) CKShareMetadata *cloudKitShareMetadata;
+
+/// An optional user info object, provided when creating the `UISceneAccessory` for this scene accessory.
+///
+/// This object can be used to associate data to the scene accessory configuration to be passed to the scene delegate when the scene connects.
+@property (nullable, nonatomic, strong, readonly) id sceneAccessoryUserInfo API_AVAILABLE(ios(27.0)) API_UNAVAILABLE(macCatalyst, tvos, visionos, watchos);
+
@end
#pragma mark - UISceneOpenURLOptions
diff -ruN /Applications/Xcode_26.5.0.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/UIScreen.h /Applications/Xcode_27.0.0-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/UIScreen.h
--- /Applications/Xcode_26.5.0.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/UIScreen.h 2026-04-18 23:02:33
+++ /Applications/Xcode_27.0.0-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/UIScreen.h 2026-05-29 01:33:27
@@ -82,7 +82,7 @@
@property(nonatomic,readonly) CGRect nativeBounds API_AVAILABLE(ios(8.0)); // Native bounds of the physical screen in pixels
@property(nonatomic,readonly) CGFloat nativeScale API_AVAILABLE(ios(8.0)); // Native scale factor of the physical screen
-- (nullable CADisplayLink *)displayLinkWithTarget:(id)target selector:(SEL)sel API_AVAILABLE(ios(4.0));
+- (nullable CADisplayLink *)displayLinkWithTarget:(id)target selector:(SEL)sel API_DEPRECATED("Use the equivalent display link API on UIWindowScene", ios(4.0, 27.0), tvos(9.0, 27.0), visionos(1.0, 27.0)) API_UNAVAILABLE(watchos);
@property (readonly) NSInteger maximumFramesPerSecond API_AVAILABLE(ios(10.3)) API_UNAVAILABLE(watchos); // The maximumFramesPerSecond this screen is capable of
diff -ruN /Applications/Xcode_26.5.0.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/UISearchTab.h /Applications/Xcode_27.0.0-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/UISearchTab.h
--- /Applications/Xcode_26.5.0.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/UISearchTab.h 2026-04-18 23:02:35
+++ /Applications/Xcode_27.0.0-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/UISearchTab.h 2026-05-30 22:33:48
@@ -14,6 +14,9 @@
API_AVAILABLE(ios(18.0), tvos(18.0), visionos(2.0)) API_UNAVAILABLE(watchos)
@interface UISearchTab : UITab
+/// The system-assigned identifier for search tabs.
+@property (class, nonatomic, copy, readonly) NSString *identifier API_AVAILABLE(ios(26.4), tvos(26.4), visionos(26.4));
+
/// Determines if the search tab should automatically activate the embedded search field when the tab becomes visible.
///
/// When this property is set to `YES`, the search field will be activated when the tab is selected. Moreover, when search is cancelled,
diff -ruN /Applications/Xcode_26.5.0.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/UIStringDrawing.h /Applications/Xcode_27.0.0-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/UIStringDrawing.h
--- /Applications/Xcode_26.5.0.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/UIStringDrawing.h 2026-04-18 23:02:33
+++ /Applications/Xcode_27.0.0-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/UIStringDrawing.h 2026-05-27 00:33:23
@@ -8,11 +8,19 @@
#import <Foundation/Foundation.h>
#import <UIKit/UIKitDefines.h>
-#if (TARGET_OS_IPHONE || TARGET_IPHONE_SIMULATOR)
+#if (TARGET_OS_IPHONE || TARGET_OS_SIMULATOR)
#import <CoreGraphics/CoreGraphics.h>
#endif
+#if __has_include(<UIFoundation/NSParagraphStyle.h>)
+#import <UIFoundation/NSParagraphStyle.h>
+#else
#import <UIKit/NSParagraphStyle.h>
+#endif
+#if __has_include(<UIFoundation/NSText.h>)
+#import <UIFoundation/NSText.h>
+#else
#import <UIKit/NSText.h>
+#endif
/* Keys for text attributes dictionaries.
These keys are superseded by the corresponding attribute name keys (NSFontAttributeName, NSForegroundColorAttributeName, NSShadowAttributeName)
diff -ruN /Applications/Xcode_26.5.0.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/UITab.h /Applications/Xcode_27.0.0-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/UITab.h
--- /Applications/Xcode_26.5.0.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/UITab.h 2026-04-18 23:26:21
+++ /Applications/Xcode_27.0.0-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/UITab.h 2026-05-23 02:56:46
@@ -54,6 +54,9 @@
/// The image of the tab. Default is nil.
@property (nonatomic, strong, nullable) UIImage *image;
+/// An alternate image to display when the tab is selected. Default is nil.
+@property (nonatomic, strong, nullable) UIImage *selectedImage API_AVAILABLE(ios(26.1), tvos(26.1), visionos(26.1)) API_UNAVAILABLE(watchos);
+
/// The subtitle of the tab. This is displayed only in certain contexts, like the sidebar. Default is nil.
@property (nonatomic, copy, nullable) NSString *subtitle;
diff -ruN /Applications/Xcode_26.5.0.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/UITabBarController.h /Applications/Xcode_27.0.0-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/UITabBarController.h
--- /Applications/Xcode_26.5.0.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/UITabBarController.h 2026-04-18 20:17:57
+++ /Applications/Xcode_27.0.0-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/UITabBarController.h 2026-05-23 02:19:56
@@ -87,6 +87,17 @@
/// The default value is is `nil`, which would make all tabs available.
@property (nonatomic, copy, nullable) NSArray<NSString *> *compactTabIdentifiers API_AVAILABLE(ios(18.0), tvos(18.0), visionos(2.0)) API_UNAVAILABLE(watchos);
+/// The identifier of the tab that should be displayed as prominent. Where supported, the specified tab receives
+/// enhanced visual emphasis in the tab bar. If this property is nil, and there is a `UISearchTab` that could
+/// become prominent (when `automaticallyActivatesSearch = true`), then the search tab will receive
+/// the prominent treatment by default.
+///
+/// Default is nil.
+@property (nonatomic, copy, nullable) NSString *prominentTabIdentifier API_AVAILABLE(ios(27.0), visionos(27.0)) API_UNAVAILABLE(tvos, watchos);
+
+/// Sets the prominent tab identifier with an option to animate the change.
+- (void)setProminentTabIdentifier:(nullable NSString *)identifier animated:(BOOL)animated API_AVAILABLE(ios(27.0), visionos(27.0)) API_UNAVAILABLE(tvos, watchos);
+
/// The currently selected tab, which can be a root tab or any of their descendants.
///
/// The default value for this property is `nil`.
@@ -102,6 +113,15 @@
/// Returns the `tab` matching the specified `identifier` in the tab bar controller's tabs. Returns nil if no tab is found matching the `identifier`.
- (nullable UITab *)tabForIdentifier:(NSString *)identifier API_AVAILABLE(ios(18.0), tvos(18.0), visionos(2.0)) API_UNAVAILABLE(watchos);
+
+/// Animates multiple tab changes as a single update.
+///
+/// Use this method when you need to make several changes to tab properties simultaneously. Changes made
+/// inside the `updates` block are coalesced into a single animated layout pass, preventing intermediate states
+/// from being visible to the user.
+///
+/// The `updates` block is called synchronously. You can safely read and write any mutable tab properties inside this block.
+- (void)performBatchUpdates:(void (NS_NOESCAPE ^)(void))updates API_AVAILABLE(ios(27.0), tvos(27.0), visionos(27.0)) API_UNAVAILABLE(watchos);
/// Creates a tab bar controller with the specified tabs.
- (instancetype)initWithTabs:(NSArray<UITab *> *)tabs API_AVAILABLE(ios(18.0), tvos(18.0), visionos(2.0)) API_UNAVAILABLE(watchos);
diff -ruN /Applications/Xcode_26.5.0.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/UITabBarControllerSidebar.h /Applications/Xcode_27.0.0-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/UITabBarControllerSidebar.h
--- /Applications/Xcode_26.5.0.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/UITabBarControllerSidebar.h 2026-04-18 22:32:12
+++ /Applications/Xcode_27.0.0-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/UITabBarControllerSidebar.h 2026-05-30 22:55:12
@@ -34,6 +34,20 @@
UITabBarControllerSidebarLayoutTile = 2,
} NS_SWIFT_NAME(UITabBarControllerSidebar.Layout) API_AVAILABLE(ios(18.0), visionos(2.0)) API_UNAVAILABLE(tvos) API_UNAVAILABLE(watchos);
+#pragma mark - UITabBarControllerSidebarPlacement
+
+typedef NS_ENUM(NSInteger, UITabBarControllerSidebarPlacement) {
+ /// The system determines the appropriate placement.
+ UITabBarControllerSidebarPlacementAutomatic = 0,
+
+ /// Display the sidebar when it is supported.
+ UITabBarControllerSidebarPlacementSidebar = 1,
+
+ /// Display the tab bar.
+ UITabBarControllerSidebarPlacementTabBar = 2,
+} NS_SWIFT_NAME(UITabBarControllerSidebar.Placement) API_AVAILABLE(ios(27.0), visionos(27.0)) API_UNAVAILABLE(tvos) API_UNAVAILABLE(watchos);
+
+
#pragma mark - UITabSidebarScrollTarget
UIKIT_EXTERN NS_SWIFT_UI_ACTOR NS_REFINED_FOR_SWIFT
@@ -61,6 +75,24 @@
/// The object managing the delegate of the sidebar.
@property (nonatomic, weak, nullable) id<UITabBarControllerSidebarDelegate> delegate;
+/// Indicates when the tab sidebar is available to be displayed in the current context. When available, the sidebar is either visible, or
+/// can become visible depending on `isHidden`. Use this property to gate behaviors or UI that is dependent on the availability of
+/// the sidebar (like child tabs, or landing pages for groups).
+///
+/// Implement the delegate method `tabBarController:sidebarAvailabilityDidChange:` to be notified when the value of this property changes.
+@property (nonatomic, assign, readonly) BOOL isAvailable API_AVAILABLE(ios(27.0), visionos(27.0)) API_UNAVAILABLE(tvos);
+
+/// The preferred placement for the tab bar controller when the sidebar and tab bar
+/// are mutually exclusive, and only one placement can be displayed.
+///
+/// When set to `UITabBarControllerSidebarPlacementAutomatic`, the system
+/// resolves to the platform default. On iOS, this resolves to showing the tab bar by default.
+/// This property has no effect on platforms where multiple placements are supported, like
+/// on iPadOS, where the sidebar can be minimized into the top tab bar.
+///
+/// Default is `UITabBarControllerSidebarPlacementAutomatic`.
+@property (nonatomic, assign) UITabBarControllerSidebarPlacement preferredPlacement API_AVAILABLE(ios(27.0), visionos(27.0)) API_UNAVAILABLE(tvos);
+
/// Determines if the sidebar is currently hidden.
@property (nonatomic, assign, getter=isHidden) BOOL hidden;
@@ -124,6 +156,9 @@
@protocol UITabBarControllerSidebarDelegate <NSObject>
@optional
+
+/// Notifies the delegate when `UITabBarController.Sidebar.isAvailable` changes.
+- (void)tabBarController:(UITabBarController *)tabBarController sidebarAvailabilityDidChange:(UITabBarControllerSidebar *)sidebar API_AVAILABLE(ios(27.0), visionos(27.0)) API_UNAVAILABLE(tvos);
/// Notifies the delegate when the visibility of the sidebar is about to change when `sidebar.isHidden` changes.
/// Add animations to the animator to run alongside the visibility update. Alongside animations and completions will run immediately
diff -ruN /Applications/Xcode_26.5.0.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/UITabGroup.h /Applications/Xcode_27.0.0-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/UITabGroup.h
--- /Applications/Xcode_26.5.0.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/UITabGroup.h 2026-04-18 23:06:00
+++ /Applications/Xcode_27.0.0-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/UITabGroup.h 2026-05-30 22:55:11
@@ -36,16 +36,16 @@
/// Child tabs of the tab group. Default is an empty array.
@property (nonatomic, copy) NSArray<UITab *> *children;
-/// The display order of the children, represented by the identifiers. Default is empty.
-/// Any tab in `children` not contained in `displayOrderIdentifiers` will be appended after
-/// sorted items. Identifiers that do not match tabs in `children` will be ignored.
-@property (nonatomic, copy) NSArray<NSString *> *displayOrderIdentifiers;
-
/// Determines if elements in `children` can be reordered from the sidebar. Default is NO.
/// Changes in the display order are notified via `tabBarController:displayOrderDidChangeForGroup:`
/// in `UITabBarControllerDelegate`.
@property (nonatomic, assign) BOOL allowsReordering;
+/// The display order of the children, represented by the identifiers. Default is empty.
+/// Any tab in `children` not contained in `displayOrderIdentifiers` will be appended after
+/// sorted items. Identifiers that do not match tabs in `children` will be ignored.
+@property (nonatomic, copy) NSArray<NSString *> *displayOrderIdentifiers;
+
/// Returns the `children` array sorted by `displayOrderIdentifiers` if it is specified.
/// Any tab in `children` not contained in the identifiers will be appended after
/// sorted items. Identifiers that do not match tabs in `children` will be ignored.
@@ -85,6 +85,19 @@
/// by users. When enabled, the tab group becomes a selectable item in the sidebar, and will no longer perform
/// automatic selection for a default child if no child is currently selected. The default value is NO.
@property (nonatomic, assign) BOOL isSidebarDestination API_AVAILABLE(ios(26.0), visionos(26.0)) API_UNAVAILABLE(tvos, watchos);
+
+/// Whether the group is initially displayed in a collapsed state in the sidebar.
+///
+/// When true, the group renders collapsed the first time it appears in
+/// the sidebar. The user can expand the group manually, and any
+/// subsequent user interactions or customization changes take precedence
+/// over this default.
+///
+/// This property has no effect in contexts where groups are not
+/// collapsible, such as when `sidebarAppearance == .inline`.
+///
+/// Default is `NO`.
+@property (nonatomic, assign, getter=isCollapsedByDefault) BOOL collapsedByDefault API_AVAILABLE(ios(26.1), visionos(26.1)) API_UNAVAILABLE(tvos, watchos);
/// Creates a `UITabGroup` using the specified parameters.
- (instancetype)initWithTitle:(NSString *)title
diff -ruN /Applications/Xcode_26.5.0.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/UITextDragPreviewRenderer.h /Applications/Xcode_27.0.0-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/UITextDragPreviewRenderer.h
--- /Applications/Xcode_26.5.0.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/UITextDragPreviewRenderer.h 2026-04-18 23:02:32
+++ /Applications/Xcode_27.0.0-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/UITextDragPreviewRenderer.h 2026-05-30 22:33:44
@@ -9,7 +9,11 @@
#import <Foundation/Foundation.h>
#import <CoreGraphics/CoreGraphics.h>
#import <UIKit/UIKitDefines.h>
+#if __has_include(<UIFoundation/NSLayoutManager.h>)
+#import <UIFoundation/NSLayoutManager.h>
+#else
#import <UIKit/NSLayoutManager.h>
+#endif
@class UIImage;
diff -ruN /Applications/Xcode_26.5.0.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/UITextFormattingViewControllerChangeValue.h /Applications/Xcode_27.0.0-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/UITextFormattingViewControllerChangeValue.h
--- /Applications/Xcode_26.5.0.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/UITextFormattingViewControllerChangeValue.h 2026-04-18 20:18:05
+++ /Applications/Xcode_27.0.0-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/UITextFormattingViewControllerChangeValue.h 2026-05-30 22:33:53
@@ -9,7 +9,11 @@
#import <Foundation/Foundation.h>
#import <UIKit/UIKitDefines.h>
#import <UIKit/UITextFormattingViewControllerFormattingDescriptor.h>
+#if __has_include(<UIFoundation/NSText.h>)
+#import <UIFoundation/NSText.h>
+#else
#import <UIKit/NSText.h>
+#endif
@class UIColor;
@class UIFont;
diff -ruN /Applications/Xcode_26.5.0.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/UITextInput.h /Applications/Xcode_27.0.0-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/UITextInput.h
--- /Applications/Xcode_26.5.0.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/UITextInput.h 2026-04-18 23:26:20
+++ /Applications/Xcode_27.0.0-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/UITextInput.h 2026-05-23 02:19:46
@@ -11,7 +11,11 @@
#import <UIKit/UITextInputTraits.h>
#import <UIKit/UIKitDefines.h>
#import <UIKit/UIResponder.h>
+#if __has_include(<UIFoundation/NSText.h>)
+#import <UIFoundation/NSText.h>
+#else
#import <UIKit/NSText.h>
+#endif
//===================================================================================================
diff -ruN /Applications/Xcode_26.5.0.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/UITextView.h /Applications/Xcode_27.0.0-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/UITextView.h
--- /Applications/Xcode_26.5.0.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/UITextView.h 2026-04-18 23:02:39
+++ /Applications/Xcode_27.0.0-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/UITextView.h 2026-05-27 00:49:09
@@ -22,12 +22,16 @@
#import <UIKit/UILetterformAwareAdjusting.h>
#import <UIKit/UITextPasteConfigurationSupporting.h>
#import <UIKit/UIInputSuggestion.h>
-
NS_HEADER_AUDIT_BEGIN(nullability, sendability)
-@class UIFindInteraction, UIFont, UIColor, UIMenu, UIMenuElement, UITextView, NSTextContainer, NSTextLayoutManager, NSLayoutManager, NSTextStorage, NSTextAttachment, UITextItem, UITextItemMenuConfiguration, NSTextRange, UITextFormattingViewController, UITextFormattingViewControllerConfiguration, UIWritingToolsCoordinator;
-@protocol UIEditMenuInteractionAnimating, UIContextMenuInteractionAnimating;
+@class UIFindInteraction, UIFont, UIColor, UIMenu, UIMenuElement, UITextView, NSTextContainer, NSTextLayoutManager, NSLayoutManager, NSTextStorage, NSTextAttachment, UITextItem, UITextItemMenuConfiguration, NSTextRange, UITextFormattingViewController, UITextFormattingViewControllerConfiguration, UIWritingToolsCoordinator, NSTextViewportLayoutController, NSTextLayoutFragment;
+@protocol UIEditMenuInteractionAnimating, UIContextMenuInteractionAnimating, NSTextViewportLayoutControllerDelegate;
+typedef NS_OPTIONS(NSUInteger, UITextAttachmentViewProviderReusePolicy) {
+ UITextAttachmentViewProviderReusePolicyOnScrollingOutOfViewport = 1 << 0, // Cache text attachment related objects when they are scrolled out of the viewport
+ UITextAttachmentViewProviderReusePolicyOnEditingInlineParagraphs = 1 << 1, // Cache text attachment related objects when the paragraphs containing them are recycled because of editing
+};
+
API_UNAVAILABLE(watchos) NS_SWIFT_UI_ACTOR
@protocol UITextViewDelegate <NSObject, UIScrollViewDelegate>
@@ -216,7 +220,7 @@
} API_AVAILABLE(ios(17.0), visionos(1.0)) API_UNAVAILABLE(watchos);
UIKIT_EXTERN API_AVAILABLE(ios(2.0)) API_UNAVAILABLE(watchos) NS_SWIFT_UI_ACTOR
-@interface UITextView : UIScrollView <UITextInput, UIContentSizeCategoryAdjusting, UILetterformAwareAdjusting>
+@interface UITextView : UIScrollView <UITextInput, UIContentSizeCategoryAdjusting, UILetterformAwareAdjusting, NSTextViewportLayoutControllerDelegate>
@property(nullable,nonatomic,weak) id<UITextViewDelegate> delegate;
@@ -321,6 +325,24 @@
///
/// It has a non-nil default value.
@property(nonatomic, nullable, readwrite, copy) UITextFormattingViewControllerConfiguration *textFormattingConfiguration API_AVAILABLE(ios(18.0), visionos(26.0)) API_UNAVAILABLE(macCatalyst) API_UNAVAILABLE(watchos, tvos);
+
+/// Register the UITextAttachmentViewProviderReusePolicy for all instances of a particular subclass of NSTextAttachmentViewProvider.
+- (void)registerTextAttachmentViewProviderReusePolicy:(UITextAttachmentViewProviderReusePolicy)policy forTextAttachmentViewProviderType:(Class)viewProviderType API_AVAILABLE(ios(27.0),tvos(27.0),visionos(27.0)) API_UNAVAILABLE(watchos);
+
+/// `NSTextViewportLayoutControllerDelegate` method that the framework calls when the layout controller lays out a text layout fragment in the UI. Requires a call to super.
+- (void)textViewportLayoutController:(NSTextViewportLayoutController *)textViewportLayoutController configureRenderingSurfaceForTextLayoutFragment:(NSTextLayoutFragment *)textLayoutFragment API_AVAILABLE(ios(27.0),tvos(27.0),visionos(27.0)) API_UNAVAILABLE(watchos) NS_REQUIRES_SUPER;
+
+/// `NSTextViewportLayoutControllerDelegate` method that the framework calls to request the current viewport, which is the view visible bounds plus the overdraw area. Requires a call to super.
+- (CGRect)viewportBoundsForTextViewportLayoutController:(NSTextViewportLayoutController *)textViewportLayoutController API_AVAILABLE(ios(27.0),tvos(27.0),visionos(27.0)) API_UNAVAILABLE(watchos) NS_REQUIRES_SUPER;
+
+/// `NSTextViewportLayoutControllerDelegate` method that the framework calls when the text viewport layout controller starts its layout process. Requires a call to super.
+- (void)textViewportLayoutControllerWillLayout:(NSTextViewportLayoutController *)textViewportLayoutController API_AVAILABLE(ios(27.0),tvos(27.0),visionos(27.0)) API_UNAVAILABLE(watchos) NS_REQUIRES_SUPER;
+
+/// `NSTextViewportLayoutControllerDelegate` method that the framework calls when the text viewport layout controller finishes its layout process. Requires a call to super.
+- (void)textViewportLayoutControllerDidLayout:(NSTextViewportLayoutController *)textViewportLayoutController API_AVAILABLE(ios(27.0),tvos(27.0),visionos(27.0)) API_UNAVAILABLE(watchos) NS_REQUIRES_SUPER;
+
+/// `NSTextViewportLayoutControllerDelegate` method that the framework calls when the text viewport layout controller receives a `setNeedsLayout` call. Requires a call to super.
+- (void)textViewportLayoutControllerReceivedSetNeedsLayout:(NSTextViewportLayoutController *)textViewportLayoutController API_AVAILABLE(ios(27.0),tvos(27.0),visionos(27.0)) API_UNAVAILABLE(watchos) NS_REQUIRES_SUPER;
@end
diff -ruN /Applications/Xcode_26.5.0.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/UIView.h /Applications/Xcode_27.0.0-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/UIView.h
--- /Applications/Xcode_26.5.0.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/UIView.h 2026-04-18 23:05:58
+++ /Applications/Xcode_27.0.0-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/UIView.h 2026-05-27 00:33:22
@@ -21,6 +21,10 @@
#import <UIKit/UIFocusEffect.h>
#import <UIKit/UICornerConfiguration.h>
#import <UIUtilities/UICoordinateSpace.h>
+#import <CoreLocation/CLBody.h>
+#if __has_include(<CoreMotion/CMBody.h>)
+#import <CoreMotion/CMBody.h>
+#endif
NS_HEADER_AUDIT_BEGIN(nullability, sendability)
@@ -767,6 +771,12 @@
- (CGFloat)effectiveRadiusForCorner:(UIRectCorner)corner NS_SWIFT_NAME(effectiveRadius(corner:));
@end
+
+@interface UIView () <CLBodyIdentifiable> @end
+
+#if __has_include(<CoreMotion/CMBody.h>)
+@interface UIView () <CMBodyIdentifiable> @end
+#endif
NS_HEADER_AUDIT_END(nullability, sendability)
diff -ruN /Applications/Xcode_26.5.0.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/UIViewController.h /Applications/Xcode_27.0.0-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/UIViewController.h
--- /Applications/Xcode_26.5.0.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/UIViewController.h 2026-04-18 23:36:24
+++ /Applications/Xcode_27.0.0-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/UIViewController.h 2026-05-30 22:55:19
@@ -34,6 +34,8 @@
@class UIScrollView;
@class UIContentUnavailableConfiguration, UIContentUnavailableConfigurationState;
@class UIViewControllerTransition;
+@class UISceneAccessory;
+@class UISceneAccessoryRegistration;
@protocol UIViewControllerTransitionCoordinator;
@protocol UIContentConfiguration;
@@ -354,6 +356,19 @@
* specific `UIUserInterfaceStyle`. This does not affect the application or any parent view controllers.
*/
@property (nonatomic) UIUserInterfaceStyle overrideUserInterfaceStyle API_AVAILABLE(tvos(13.0), ios(13.0)) API_UNAVAILABLE(watchos); // Defaults to UIUserInterfaceStyleUnspecified
+
+/// Registers a new scene accessory configuration associated with this view controller.
+///
+/// The delegate type that the configuration defines will be called for all lifecycle events associated with the scene accessory.
+///
+/// - Parameter accessory: A configuration which defines system functionality necessary to present the scene accessory.
+/// - Returns: A registration object which can be used to monitor changes for the scene accessory or unregister it.
+- (UISceneAccessoryRegistration *)registerSceneAccessory:(UISceneAccessory *)accessory API_AVAILABLE(ios(27.0)) API_UNAVAILABLE(macCatalyst, tvos, visionos, watchos) NS_SWIFT_NAME(registerSceneAccessory(_:));
+
+/// Unregisters a scene accessory with the specified registration.
+///
+/// If the scene accessory associated to this registration is currently being presented, it will be dismissed.
+- (void)unregisterSceneAccessory:(UISceneAccessoryRegistration *)registration API_AVAILABLE(ios(27.0)) API_UNAVAILABLE(macCatalyst, tvos, visionos, watchos) NS_SWIFT_NAME(unregisterSceneAccessory(_:));
@end
diff -ruN /Applications/Xcode_26.5.0.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/UIWindowScene.h /Applications/Xcode_27.0.0-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/UIWindowScene.h
--- /Applications/Xcode_26.5.0.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/UIWindowScene.h 2026-04-19 00:46:14
+++ /Applications/Xcode_27.0.0-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/UIWindowScene.h 2026-05-30 00:01:20
@@ -11,10 +11,11 @@
#import <UIKit/UISceneOptions.h>
#import <UIKit/UISceneSizeRestrictions.h>
#import <UIKit/UISceneWindowingControlStyle.h>
+#import <UIKit/UISceneClosureConfirmation.h>
NS_HEADER_AUDIT_BEGIN(nullability, sendability)
-@class UIScreen, UIWindow, UIWindowSceneDelegate, UISceneDestructionRequestOptions, CKShareMetadata, UISceneSizeRestrictions, UISceneWindowingBehaviors, UIWindowSceneGeometry, UIWindowSceneGeometryPreferences;
+@class CADisplayLink, UIScreen, UIWindow, UIWindowSceneDelegate, UISceneDestructionRequestOptions, CKShareMetadata, UISceneSizeRestrictions, UISceneWindowingBehaviors, UIWindowSceneGeometry, UIWindowSceneGeometryPreferences;
@protocol UIActivityItemsConfigurationProviding;
UIKIT_EXTERN API_AVAILABLE(ios(13.0)) API_UNAVAILABLE(watchos) NS_SWIFT_UI_ACTOR
@@ -52,7 +53,22 @@
/// Additional window behaviors which may be platform specific. This property will be nil on unsupported platforms, otherwise will provide a mutable object for window behavior customization.
@property (nonatomic, readonly, nullable) UISceneWindowingBehaviors *windowingBehaviors API_AVAILABLE(ios(16.0)) API_UNAVAILABLE(watchos);
+/// Creates a display link targeting the display associated with this scene.
+///
+/// The returned display link is automatically retargeted when the scene moves
+/// between displays.
+///
+/// - Parameters:
+/// - target: An object that is the target of the display link callback.
+/// - sel: A selector on `target` to call when the display link fires.
+/// - Returns: A new display link, or `nil` only in exceptional cases where the
+/// system cannot construct a display link.
+- (nullable CADisplayLink *)displayLinkWithTarget:(id)target selector:(SEL)sel NS_SWIFT_NAME(displayLink(target:selector:)) API_AVAILABLE(ios(27.0), tvos(27.0), visionos(27.0)) API_UNAVAILABLE(watchos);
+
@property (nonatomic, readonly, getter=isFullScreen) BOOL fullScreen API_AVAILABLE(macCatalyst(16.0)) API_UNAVAILABLE(watchos);
+
+/// A configuration describing a confirmation dialog to be shown when a user action will result in destruction of the scene session and disconnection of the scene.
+@property (nonatomic, copy, nullable) UISceneClosureConfirmation *closureConfirmation API_AVAILABLE(ios(27.0)) API_UNAVAILABLE(tvos, watchos, visionos);
@end
API_AVAILABLE(ios(17.0), tvos(17.0)) API_UNAVAILABLE(watchos)
@@ -75,6 +91,11 @@
///
/// Always called when a `UIWindowScene` moves between screens.
- (void)windowScene:(UIWindowScene *)windowScene didUpdateEffectiveGeometry:(UIWindowSceneGeometry *)previousEffectiveGeometry API_AVAILABLE(ios(26.0), tvos(26.0), visionos(26.0)) API_UNAVAILABLE(watchos);
+
+/// Returns the interface orientations supported by the window scene.
+/// The returned value replaces the app's UISupportedInterfaceOrientations Info.plist value
+/// for this scene. If not implemented, the Info.plist value is used.
+- (UIInterfaceOrientationMask)supportedInterfaceOrientationsForWindowScene:(UIWindowScene *)windowScene API_AVAILABLE(ios(27.0), visionos(27.0)) API_UNAVAILABLE(tvos, watchos);
#pragma mark - System Integration
// Called when the user activates your application by selecting a shortcut on the home screen,
diff -ruN /Applications/Xcode_26.5.0.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/UIWritingToolsCoordinator.h /Applications/Xcode_27.0.0-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/UIWritingToolsCoordinator.h
--- /Applications/Xcode_26.5.0.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/UIWritingToolsCoordinator.h 2026-04-18 20:17:55
+++ /Applications/Xcode_27.0.0-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/UIWritingToolsCoordinator.h 2026-05-23 02:56:54
@@ -140,13 +140,10 @@
UIKIT_EXTERN API_AVAILABLE(ios(18.2), visionos(2.4)) API_UNAVAILABLE(tvos, watchos) NS_SWIFT_UI_ACTOR
@interface UIWritingToolsCoordinator : NSObject <UIInteraction>
-/// A Boolean value that indicates whether Writing Tools features are
-/// currently available.
+/// A Boolean value that indicates whether Writing Tools features are available to enable.
///
-/// The value of this property is `true` when Writing Tools features are
-/// available, and `false` when they aren’t. Writing Tools support might
-/// be unavailable because of device constraints or because the system isn’t
-/// ready to process Writing Tools requests.
+/// The value of this property is `true` when Writing Tools features are supported, even when the user has not enabled the feature.
+/// Writing Tools support might be unavailable because of device constraints.
@property (class, nonatomic, assign, readonly) BOOL isWritingToolsAvailable;
// The delegate must be non-nil when the UIWritingToolsCoordinator is added to a view.