-
Notifications
You must be signed in to change notification settings - Fork 514
UIKit iOS xcode15.3 b1
Alex Soto edited this page Jan 27, 2024
·
2 revisions
#UIKit.framework
diff -ruN /Applications/Xcode_15.2.0.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/NSItemProvider+UIKitAdditions.h /Applications/Xcode_15.3.0-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/NSItemProvider+UIKitAdditions.h
--- /Applications/Xcode_15.2.0.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/NSItemProvider+UIKitAdditions.h 2023-11-12 11:31:47
+++ /Applications/Xcode_15.3.0-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/NSItemProvider+UIKitAdditions.h 2024-01-19 02:21:15
@@ -43,6 +43,25 @@
@end
+@protocol UIItemProviderReadingAugmentationProviding
+// Conforming classes should not fall through to [requestedClass objectWithItemProviderData:typeIdentifier:error:.
+// UIItemProvider does this on your behalf.
++ (nullable id)objectWithItemProviderData:(NSData *)data
+ typeIdentifier:(NSString *)typeIdentifier
+ requestedClass:(Class)requestedClass
+ error:(NSError **)outError;
+// Conforming classes should not fall through to -readableTypeIdentifiersForItemProvider of the original NSItemProviderReading clas.
+// UIItemProvider does this on your behalf.
+@property (class, NS_NONATOMIC_IOSONLY, readonly, copy) NSArray<NSString *> *additionalLeadingReadableTypeIdentifiersForItemProvider;
+@property (class, NS_NONATOMIC_IOSONLY, readonly, copy) NSArray<NSString *> *additionalTrailingReadableTypeIdentifiersForItemProvider;
+
+@end
+
+@protocol UIItemProviderReadingAugmentationDesignating <NSItemProviderReading>
++ (Class<UIItemProviderReadingAugmentationProviding>)_ui_augmentingNSItemProviderReadingClass;
+@end
+
+
NS_HEADER_AUDIT_END(nullability, sendability)
#else
diff -ruN /Applications/Xcode_15.2.0.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/UIControl.h /Applications/Xcode_15.3.0-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/UIControl.h
--- /Applications/Xcode_15.2.0.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/UIControl.h 2023-11-12 03:43:26
+++ /Applications/Xcode_15.3.0-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/UIControl.h 2024-01-19 04:12:02
@@ -112,6 +112,9 @@
/// Removes the action with the provided identifier from the set of passed control events.
- (void)removeActionForIdentifier:(UIActionIdentifier)actionIdentifier forControlEvents:(UIControlEvents)controlEvents API_AVAILABLE(ios(14.0));
+/// Performs the control's primary action.
+- (void)performPrimaryAction API_AVAILABLE(ios(17.4));
+
// get info about target & actions. this makes it possible to enumerate all target/actions by checking for each event kind
@property(nonatomic,readonly) NSSet *allTargets; // set may include NSNull to indicate at least one nil target
@property(nonatomic,readonly) UIControlEvents allControlEvents; // list of all events that have at least one action
diff -ruN /Applications/Xcode_15.2.0.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/UIDatePicker.h /Applications/Xcode_15.3.0-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/UIDatePicker.h
--- /Applications/Xcode_15.2.0.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/UIDatePicker.h 2023-11-12 03:43:24
+++ /Applications/Xcode_15.3.0-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/UIDatePicker.h 2024-01-19 07:28:52
@@ -13,10 +13,16 @@
NS_HEADER_AUDIT_BEGIN(nullability, sendability)
typedef NS_ENUM(NSInteger, UIDatePickerMode) {
- UIDatePickerModeTime, // Displays hour, minute, and optionally AM/PM designation depending on the locale setting (e.g. 6 | 53 | PM)
- UIDatePickerModeDate, // Displays month, day, and year depending on the locale setting (e.g. November | 15 | 2007)
- UIDatePickerModeDateAndTime, // Displays date, hour, minute, and optionally AM/PM designation depending on the locale setting (e.g. Wed Nov 15 | 6 | 53 | PM)
- UIDatePickerModeCountDownTimer, // Displays hour and minute (e.g. 1 | 53)
+ /// Displays hour, minute, and optionally AM/PM designation depending on the locale setting (e.g. 6 | 53 | PM)
+ UIDatePickerModeTime,
+ /// Displays month, day, and year depending on the locale setting (e.g. November | 15 | 2007)
+ UIDatePickerModeDate,
+ /// Displays date, hour, minute, and optionally AM/PM designation depending on the locale setting (e.g. Wed Nov 15 | 6 | 53 | PM)
+ UIDatePickerModeDateAndTime,
+ /// Displays hour and minute (e.g. 1 | 53); only supported in `UIDatePickerStyleWheels`
+ UIDatePickerModeCountDownTimer,
+ /// Displays year and month depending on the locale setting (e.g. March | 2024); only supported in `UIDatePickerStyleWheels`
+ UIDatePickerModeYearAndMonth API_AVAILABLE(ios(17.4)),
} API_UNAVAILABLE(tvos);
typedef NS_ENUM(NSInteger, UIDatePickerStyle) {
diff -ruN /Applications/Xcode_15.2.0.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/UIDragItem.h /Applications/Xcode_15.3.0-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/UIDragItem.h
--- /Applications/Xcode_15.2.0.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/UIDragItem.h 2023-11-12 11:31:40
+++ /Applications/Xcode_15.3.0-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/UIDragItem.h 2024-01-19 02:21:07
@@ -22,12 +22,14 @@
@property (nonatomic, readonly) __kindof NSItemProvider *itemProvider;
-/* Use `localObject` to attach additional information to
+/**
+ * Use `localObject` to attach additional information to
* this drag item, visible only inside the app that started the drag.
*/
@property (nonatomic, strong, nullable) id localObject;
-/* Use `previewProvider` to change the preview for an item.
+/**
+ * Use `previewProvider` to change the preview for an item.
*
* Each item is usually given a preview when the drag begins,
* either by the UIDragInteractionDelegate's `-dragInteraction:previewForLiftingItem:session:`
@@ -41,6 +43,12 @@
* To hide the preview, set `previewProvider` to a block that returns nil.
*/
@property (nonatomic, copy, nullable) UIDragPreview * _Nullable (^previewProvider)(void);
+
+/**
+ * Requests for the drop preview to be updated if an active drop animation is in progress, and can handle updates.
+ * If no active drop animation is in progress for the specified item, then nothing happens.
+ */
+- (void)setNeedsDropPreviewUpdate API_AVAILABLE(ios(17.4));
@end
diff -ruN /Applications/Xcode_15.2.0.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/UIFeedbackGenerator.h /Applications/Xcode_15.3.0-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/UIFeedbackGenerator.h
--- /Applications/Xcode_15.2.0.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/UIFeedbackGenerator.h 2023-11-12 11:31:43
+++ /Applications/Xcode_15.3.0-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/UIFeedbackGenerator.h 2024-01-19 02:21:11
@@ -7,6 +7,7 @@
#import <Foundation/Foundation.h>
#import <UIKit/UIKitDefines.h>
+#import <UIKit/UIInteraction.h>
NS_HEADER_AUDIT_BEGIN(nullability, sendability)
diff -ruN /Applications/Xcode_15.2.0.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/UIImpactFeedbackGenerator.h /Applications/Xcode_15.3.0-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/UIImpactFeedbackGenerator.h
--- /Applications/Xcode_15.2.0.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/UIImpactFeedbackGenerator.h 2023-11-12 11:31:40
+++ /Applications/Xcode_15.3.0-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/UIImpactFeedbackGenerator.h 2024-01-19 02:21:07
@@ -16,9 +16,9 @@
UIImpactFeedbackStyleLight,
UIImpactFeedbackStyleMedium,
UIImpactFeedbackStyleHeavy,
- UIImpactFeedbackStyleSoft API_AVAILABLE(ios(13.0)),
- UIImpactFeedbackStyleRigid API_AVAILABLE(ios(13.0))
-};
+ UIImpactFeedbackStyleSoft API_AVAILABLE(ios(13.0)) API_UNAVAILABLE(visionos) API_UNAVAILABLE(tvos, watchos),
+ UIImpactFeedbackStyleRigid API_AVAILABLE(ios(13.0)) API_UNAVAILABLE(visionos) API_UNAVAILABLE(tvos, watchos)
+} API_AVAILABLE(ios(10.0)) API_UNAVAILABLE(visionos) API_UNAVAILABLE(tvos, watchos);
// UIImpactFeedbackGenerator is used to give user feedback when an impact between UI elements occurs
UIKIT_EXTERN API_AVAILABLE(ios(10.0)) API_UNAVAILABLE(visionos) API_UNAVAILABLE(tvos, watchos) NS_SWIFT_UI_ACTOR
diff -ruN /Applications/Xcode_15.2.0.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/UIKitCore.h /Applications/Xcode_15.3.0-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/UIKitCore.h
--- /Applications/Xcode_15.2.0.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/UIKitCore.h 2023-11-12 11:31:28
+++ /Applications/Xcode_15.3.0-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/UIKitCore.h 2024-01-19 03:25:50
@@ -163,6 +163,7 @@
#import <UIKit/UISegmentedControl.h>
#import <UIKit/UISlider.h>
#import <UIKit/UISplitViewController.h>
+#import <UIKit/UIStandardTextCursorView.h>
#import <UIKit/UIStepper.h>
#import <UIKit/UIStoryboard.h>
#import <UIKit/UIStoryboardPopoverSegue.h>
@@ -180,6 +181,7 @@
#import <UIKit/UITableViewController.h>
#import <UIKit/UITapGestureRecognizer.h>
#import <UIKit/UITextChecker.h>
+#import <UIKit/UITextCursorDropPositionAnimator.h>
#import <UIKit/UITextCursorView.h>
#import <UIKit/UITextField.h>
#import <UIKit/UITextInput.h>
@@ -317,6 +319,7 @@
#import <UIKit/UNNotificationResponse+UIKitAdditions.h>
#import <UIKit/UIAction.h>
#import <UIKit/UIMenu.h>
+#import <UIKit/UIMenuDisplayPreferences.h>
#import <UIKit/UIMenuLeaf.h>
#import <UIKit/UIMenuBuilder.h>
#import <UIKit/UIMenuElement.h>
diff -ruN /Applications/Xcode_15.2.0.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/UIMenu.h /Applications/Xcode_15.3.0-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/UIMenu.h
--- /Applications/Xcode_15.2.0.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/UIMenu.h 2023-11-12 03:43:24
+++ /Applications/Xcode_15.3.0-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/UIMenu.h 2024-01-19 02:20:45
@@ -9,6 +9,7 @@
#import <Foundation/Foundation.h>
#import <UIKit/UIKitDefines.h>
#import <UIKit/UIMenuElement.h>
+#import <UIKit/UIMenuDisplayPreferences.h>
typedef NSString *UIMenuIdentifier NS_SWIFT_NAME(UIMenu.Identifier) NS_TYPED_EXTENSIBLE_ENUM API_AVAILABLE(ios(13.0));
@@ -55,6 +56,10 @@
/// The element(s) in the menu and sub-menus that have an "on" menu item state.
@property (nonatomic, readonly) NSArray <UIMenuElement *> *selectedElements API_AVAILABLE(ios(15.0));
+
+/// Display preferences for this menu's immediate children. Preferences are not inherited by sub menus,
+/// and may be ignored or overridden by the system in certain element sizes or menu layouts.
+@property (nonatomic, nullable, copy) UIMenuDisplayPreferences *displayPreferences API_AVAILABLE(ios(17.4));
/*!
* @abstract Creates a UIMenu with an empty title, nil image, automatically generated identifier, and default options.
diff -ruN /Applications/Xcode_15.2.0.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/UIMenuDisplayPreferences.h /Applications/Xcode_15.3.0-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/UIMenuDisplayPreferences.h
--- /Applications/Xcode_15.2.0.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/UIMenuDisplayPreferences.h 1969-12-31 19:00:00
+++ /Applications/Xcode_15.3.0-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/UIMenuDisplayPreferences.h 2024-01-19 02:21:11
@@ -0,0 +1,27 @@
+#if (defined(USE_UIKIT_PUBLIC_HEADERS) && USE_UIKIT_PUBLIC_HEADERS) || !__has_include(<UIKitCore/UIMenuDisplayPreferences.h>)
+//
+// UIMenuDisplayPreferences.h
+// UIKit
+//
+// Copyright © 2023 Apple Inc. All rights reserved.
+//
+
+#import <Foundation/Foundation.h>
+#import <UIKit/UIKitDefines.h>
+
+NS_HEADER_AUDIT_BEGIN(nullability, sendability)
+
+UIKIT_EXTERN API_AVAILABLE(ios(17.4)) NS_SWIFT_UI_ACTOR
+@interface UIMenuDisplayPreferences : NSObject <NSCopying, NSSecureCoding>
+
+/// Maximum number of title and subtitle lines displayed for this menu's elements. Defaults to NSNotFound, indicating no preference.
+@property (nonatomic, assign) NSInteger maximumNumberOfTitleLines;
+
+@end
+
+NS_HEADER_AUDIT_END(nullability, sendability)
+
+
+#else
+#import <UIKitCore/UIMenuDisplayPreferences.h>
+#endif
diff -ruN /Applications/Xcode_15.2.0.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/UINotificationFeedbackGenerator.h /Applications/Xcode_15.3.0-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/UINotificationFeedbackGenerator.h
--- /Applications/Xcode_15.2.0.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/UINotificationFeedbackGenerator.h 2023-11-12 11:31:44
+++ /Applications/Xcode_15.3.0-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/UINotificationFeedbackGenerator.h 2024-01-19 02:21:12
@@ -14,7 +14,7 @@
UINotificationFeedbackTypeSuccess,
UINotificationFeedbackTypeWarning,
UINotificationFeedbackTypeError
-};
+} API_AVAILABLE(ios(10.0)) API_UNAVAILABLE(visionos) API_UNAVAILABLE(tvos, watchos);
// UINotificationFeedbackGenerator is used to give user feedback when an notification is displayed
UIKIT_EXTERN API_AVAILABLE(ios(10.0)) API_UNAVAILABLE(visionos) API_UNAVAILABLE(tvos, watchos) NS_SWIFT_UI_ACTOR
diff -ruN /Applications/Xcode_15.2.0.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/UIPasteControl.h /Applications/Xcode_15.3.0-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/UIPasteControl.h
--- /Applications/Xcode_15.2.0.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/UIPasteControl.h 2023-11-12 11:31:45
+++ /Applications/Xcode_15.3.0-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/UIPasteControl.h 2024-01-19 02:21:13
@@ -20,7 +20,7 @@
UIPasteControlDisplayModeIconAndLabel,
UIPasteControlDisplayModeIconOnly,
UIPasteControlDisplayModeLabelOnly
-} API_AVAILABLE(ios(16.0)) NS_SWIFT_NAME(UIPasteControl.DisplayMode);
+} API_AVAILABLE(ios(16.0)) API_UNAVAILABLE(tvos, watchos) NS_SWIFT_NAME(UIPasteControl.DisplayMode);
UIKIT_EXTERN API_AVAILABLE(ios(16.0)) API_UNAVAILABLE(tvos, watchos) NS_SWIFT_NAME(UIPasteControl.Configuration) NS_SWIFT_UI_ACTOR
@interface UIPasteControlConfiguration : NSObject <NSSecureCoding>
diff -ruN /Applications/Xcode_15.2.0.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/UIPasteboard.h /Applications/Xcode_15.3.0-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/UIPasteboard.h
--- /Applications/Xcode_15.2.0.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/UIPasteboard.h 2023-11-12 03:43:24
+++ /Applications/Xcode_15.3.0-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/UIPasteboard.h 2024-01-19 07:28:52
@@ -16,33 +16,33 @@
UIKIT_EXTERN UIPasteboardName const UIPasteboardNameGeneral API_UNAVAILABLE(tvos) API_UNAVAILABLE(watchos);
UIKIT_EXTERN NSString *const UIPasteboardNameFind API_UNAVAILABLE(tvos) API_UNAVAILABLE(watchos) API_UNAVAILABLE(visionos) API_DEPRECATED("The Find pasteboard is no longer available.", ios(3.0, 10.0));
-typedef NSString * UIPasteboardDetectionPattern NS_TYPED_ENUM API_AVAILABLE(ios(14.0));
+typedef NSString * UIPasteboardDetectionPattern NS_TYPED_ENUM API_AVAILABLE(ios(14.0)) API_UNAVAILABLE(tvos, watchos);
/// NSString value, suitable for implementing "Paste and Go"
-UIKIT_EXTERN UIPasteboardDetectionPattern const UIPasteboardDetectionPatternProbableWebURL API_AVAILABLE(ios(14.0));
+UIKIT_EXTERN UIPasteboardDetectionPattern const UIPasteboardDetectionPatternProbableWebURL API_AVAILABLE(ios(14.0)) API_UNAVAILABLE(tvos, watchos);
/// NSString value, suitable for implementing "Paste and Search"
-UIKIT_EXTERN UIPasteboardDetectionPattern const UIPasteboardDetectionPatternProbableWebSearch API_AVAILABLE(ios(14.0));
+UIKIT_EXTERN UIPasteboardDetectionPattern const UIPasteboardDetectionPatternProbableWebSearch API_AVAILABLE(ios(14.0)) API_UNAVAILABLE(tvos, watchos);
/// NSNumber value
-UIKIT_EXTERN UIPasteboardDetectionPattern const UIPasteboardDetectionPatternNumber API_AVAILABLE(ios(14.0));
+UIKIT_EXTERN UIPasteboardDetectionPattern const UIPasteboardDetectionPatternNumber API_AVAILABLE(ios(14.0)) API_UNAVAILABLE(tvos, watchos);
/// Array of DDMatchLink values
-UIKIT_EXTERN UIPasteboardDetectionPattern const UIPasteboardDetectionPatternLink NS_REFINED_FOR_SWIFT API_AVAILABLE(ios(15.0));
+UIKIT_EXTERN UIPasteboardDetectionPattern const UIPasteboardDetectionPatternLink NS_REFINED_FOR_SWIFT API_AVAILABLE(ios(15.0)) API_UNAVAILABLE(tvos, watchos);
/// Array of DDMatchPhoneNumber values
-UIKIT_EXTERN UIPasteboardDetectionPattern const UIPasteboardDetectionPatternPhoneNumber NS_REFINED_FOR_SWIFT API_AVAILABLE(ios(15.0));
+UIKIT_EXTERN UIPasteboardDetectionPattern const UIPasteboardDetectionPatternPhoneNumber NS_REFINED_FOR_SWIFT API_AVAILABLE(ios(15.0)) API_UNAVAILABLE(tvos, watchos);
/// Array of DDMatchEmailAddress values
-UIKIT_EXTERN UIPasteboardDetectionPattern const UIPasteboardDetectionPatternEmailAddress NS_REFINED_FOR_SWIFT API_AVAILABLE(ios(15.0));
+UIKIT_EXTERN UIPasteboardDetectionPattern const UIPasteboardDetectionPatternEmailAddress NS_REFINED_FOR_SWIFT API_AVAILABLE(ios(15.0)) API_UNAVAILABLE(tvos, watchos);
/// Array of DDMatchAddress values
-UIKIT_EXTERN UIPasteboardDetectionPattern const UIPasteboardDetectionPatternPostalAddress NS_REFINED_FOR_SWIFT API_AVAILABLE(ios(15.0));
+UIKIT_EXTERN UIPasteboardDetectionPattern const UIPasteboardDetectionPatternPostalAddress NS_REFINED_FOR_SWIFT API_AVAILABLE(ios(15.0)) API_UNAVAILABLE(tvos, watchos);
/// Array of DDMatchCalendarEvent values
-UIKIT_EXTERN UIPasteboardDetectionPattern const UIPasteboardDetectionPatternCalendarEvent NS_REFINED_FOR_SWIFT API_AVAILABLE(ios(15.0));
+UIKIT_EXTERN UIPasteboardDetectionPattern const UIPasteboardDetectionPatternCalendarEvent NS_REFINED_FOR_SWIFT API_AVAILABLE(ios(15.0)) API_UNAVAILABLE(tvos, watchos);
/// Array of DDMatchShipmentTrackingNumber values
-UIKIT_EXTERN UIPasteboardDetectionPattern const UIPasteboardDetectionPatternShipmentTrackingNumber NS_REFINED_FOR_SWIFT API_AVAILABLE(ios(15.0));
+UIKIT_EXTERN UIPasteboardDetectionPattern const UIPasteboardDetectionPatternShipmentTrackingNumber NS_REFINED_FOR_SWIFT API_AVAILABLE(ios(15.0)) API_UNAVAILABLE(tvos, watchos);
/// Array of DDMatchFlightNumber values
-UIKIT_EXTERN UIPasteboardDetectionPattern const UIPasteboardDetectionPatternFlightNumber NS_REFINED_FOR_SWIFT API_AVAILABLE(ios(15.0));
+UIKIT_EXTERN UIPasteboardDetectionPattern const UIPasteboardDetectionPatternFlightNumber NS_REFINED_FOR_SWIFT API_AVAILABLE(ios(15.0)) API_UNAVAILABLE(tvos, watchos);
/// Array of DDMatchMoneyAmount values
-UIKIT_EXTERN UIPasteboardDetectionPattern const UIPasteboardDetectionPatternMoneyAmount NS_REFINED_FOR_SWIFT API_AVAILABLE(ios(15.0));
+UIKIT_EXTERN UIPasteboardDetectionPattern const UIPasteboardDetectionPatternMoneyAmount NS_REFINED_FOR_SWIFT API_AVAILABLE(ios(15.0)) API_UNAVAILABLE(tvos, watchos);
@class UIColor, UIImage;
diff -ruN /Applications/Xcode_15.2.0.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/UIPencilInteraction.h /Applications/Xcode_15.3.0-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/UIPencilInteraction.h
--- /Applications/Xcode_15.2.0.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/UIPencilInteraction.h 2023-11-12 11:31:42
+++ /Applications/Xcode_15.3.0-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/UIPencilInteraction.h 2024-01-19 02:21:10
@@ -9,54 +9,62 @@
#import <UIKit/UIInteraction.h>
#import <UIKit/UIKitDefines.h>
+#pragma mark - Preferred Actions
+
NS_HEADER_AUDIT_BEGIN(nullability, sendability)
-/* Preferred actions available to the user in Settings.
- */
+/// Preferred actions available to the user in Settings.
typedef NS_ENUM(NSInteger, UIPencilPreferredAction) {
- /* No action, or the user has disabled pencil interactions in Accessibility settings */
+
+ /// No action, or the user has disabled pencil interactions in Accessibility settings
UIPencilPreferredActionIgnore = 0,
- /* Switch between the current tool and eraser */
+ /// Switch between the current tool and eraser
UIPencilPreferredActionSwitchEraser,
- /* Switch between the current tool and the previously used tool */
+ /// Switch between the current tool and the previously used tool
UIPencilPreferredActionSwitchPrevious,
- /* Show and hide the color palette */
+ /// Show and hide the color palette
UIPencilPreferredActionShowColorPalette,
- /* Show the ink attributes palette */
+ /// Show the ink attributes palette
UIPencilPreferredActionShowInkAttributes API_AVAILABLE(ios(16.0)) API_UNAVAILABLE(tvos, watchos),
} API_AVAILABLE(ios(12.1)) API_UNAVAILABLE(watchos, tvos);
+#pragma mark - Interaction
@protocol UIPencilInteractionDelegate;
UIKIT_EXTERN API_AVAILABLE(ios(12.1)) API_UNAVAILABLE(visionos) API_UNAVAILABLE(watchos, tvos) NS_SWIFT_UI_ACTOR
@interface UIPencilInteraction : NSObject <UIInteraction>
+/// The user’s preferred double-tap action as set in Settings app
@property (class, nonatomic, readonly) UIPencilPreferredAction preferredTapAction;
+
+/// The user's preference for drawing with pencil only as set in Settings app or the system tool picker
@property (class, nonatomic, readonly) BOOL prefersPencilOnlyDrawing;
+/// The interaction's delegate
@property (nonatomic, weak, nullable) id <UIPencilInteractionDelegate> delegate;
+/// Whether the interaction is enabled or not
@property (nonatomic, getter=isEnabled) BOOL enabled;
@end
+#pragma mark - Interaction Delegate
-API_AVAILABLE(ios(12.1)) API_UNAVAILABLE(watchos, tvos) API_UNAVAILABLE(visionos) NS_SWIFT_UI_ACTOR
+UIKIT_EXTERN API_AVAILABLE(ios(12.1)) API_UNAVAILABLE(watchos, tvos) API_UNAVAILABLE(visionos) NS_SWIFT_UI_ACTOR
@protocol UIPencilInteractionDelegate <NSObject>
@optional
-/* Called when the user taps on the side of the pencil, if the interaction's view is in a visible view hierarchy.
- *
- * The delegate may do anything in this method. To perform the user's preferred action (as set in Settings),
- * consult the preferredTapAction class property of UIPencilInteraction.
- */
+/// Called when the user taps on the side of the pencil, if the interaction's view is in a visible view hierarchy.
+///
+/// The delegate may do anything in this method. To perform the user's preferred action (as set in Settings),
+/// consult the `preferredTapAction` class property of `UIPencilInteraction`.
- (void)pencilInteractionDidTap:(UIPencilInteraction *)interaction;
@end
diff -ruN /Applications/Xcode_15.2.0.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/UIScrollView.h /Applications/Xcode_15.3.0-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/UIScrollView.h
--- /Applications/Xcode_15.2.0.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/UIScrollView.h 2023-11-12 11:31:46
+++ /Applications/Xcode_15.3.0-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/UIScrollView.h 2024-01-19 02:21:14
@@ -56,6 +56,11 @@
@property(nonatomic) CGSize contentSize; // default CGSizeZero
@property(nonatomic) UIEdgeInsets contentInset; // default UIEdgeInsetsZero. add additional scroll area around content
+// A unit point that describes how to align the scroll view content when the content size is smaller than the scroll view bounds.
+// For example, (0, 0) aligns the content to the top left, (0.5, 0.5) centers the content, and (0.5, 1.0) would align the content to the bottom center.
+// Default: CGPointZero
+@property (nonatomic) CGPoint contentAlignmentPoint API_AVAILABLE(ios(17.4));
+
/* When contentInsetAdjustmentBehavior allows, UIScrollView may incorporate
its safeAreaInsets into the adjustedContentInset.
*/
@@ -87,12 +92,36 @@
@property(nullable,nonatomic,weak) id<UIScrollViewDelegate> delegate; // default nil. weak reference
@property(nonatomic,getter=isDirectionalLockEnabled) BOOL directionalLockEnabled; // default NO. if YES, try to lock vertical or horizontal scrolling while dragging
-@property(nonatomic) BOOL bounces; // default YES. if YES, bounces past edge of content and back again
+
+// If YES, bounces past the edge of the content and back again.
+// Setting this property is a convenience for setting both `bouncesHorizontally` and `bouncesVertically`.
+// Only returns YES if both `bouncesHorizontally` and `bouncesVertically` are YES.
+// Default: YES
+@property (nonatomic) BOOL bounces;
+
+// If YES, bounces past the left and right edges of the content and back again.
+// Setting the `bounces` property will set this axis-specific value.
+// Default: YES
+@property (nonatomic) BOOL bouncesHorizontally API_AVAILABLE(ios(17.4));
+
+// If YES, bounces past the top and bottom edges of the content and back again.
+// Setting the `bounces` property will set this axis-specific value.
+// Default: YES
+@property (nonatomic) BOOL bouncesVertically API_AVAILABLE(ios(17.4));
+
@property(nonatomic) BOOL alwaysBounceVertical; // default NO. if YES and bounces is YES, even if content is smaller than bounds, allow drag vertically
@property(nonatomic) BOOL alwaysBounceHorizontal; // default NO. if YES and bounces is YES, even if content is smaller than bounds, allow drag horizontally
@property(nonatomic,getter=isPagingEnabled) BOOL pagingEnabled API_UNAVAILABLE(tvos);// default NO. if YES, stop on multiples of view bounds
@property(nonatomic,getter=isScrollEnabled) BOOL scrollEnabled; // default YES. turn off any dragging temporarily
+// If YES, scrolling horizontally past the left and right edges of the content will start scrolling parent scroll views.
+// Default: YES
+@property (nonatomic) BOOL transfersHorizontalScrollingToParent API_AVAILABLE(ios(17.4));
+
+// If YES, scrolling vertically past the top and bottom edges of the content will start scrolling parent scroll views.
+// Default: YES
+@property (nonatomic) BOOL transfersVerticalScrollingToParent API_AVAILABLE(ios(17.4));
+
@property(nonatomic) BOOL showsVerticalScrollIndicator; // default YES. show indicator while we are tracking. fades out after tracking
@property(nonatomic) BOOL showsHorizontalScrollIndicator; // default YES. show indicator while we are tracking. fades out after tracking
@property(nonatomic) UIScrollViewIndicatorStyle indicatorStyle; // default is UIScrollViewIndicatorStyleDefault
@@ -107,8 +136,15 @@
- (void)setContentOffset:(CGPoint)contentOffset animated:(BOOL)animated; // animate at constant velocity to new offset
- (void)scrollRectToVisible:(CGRect)rect animated:(BOOL)animated; // scroll so rect is just visible (nearest edges). nothing if rect completely visible
-- (void)flashScrollIndicators; // displays the scroll indicators for a short time. This should be done whenever you bring the scroll view to front.
+// Displays the scroll indicators for a short time. This should be done whenever you bring the scroll view to front.
+- (void)flashScrollIndicators;
+// Shows scroll indicators immediately as a result of any contentOffset changes performed within the block.
+// Scroll indicators are only shown on axes where the contentOffset changes.
+// If contentOffset is set without animation, the scroll indicators will fade out after a delay.
+// If contentOffset is set with animation, the scroll indicators will fade out when the animation completes.
+- (void)withScrollIndicatorsShownForContentOffsetChanges:(void (NS_NOESCAPE ^)(void))changes API_AVAILABLE(ios(17.4));
+
/*
Scrolling with no scroll bars is a bit complex. on touch down, we don't know if the user will want to scroll or track a subview like a control.
on touch down, we start a timer and also look at any movement. if the time elapses without sufficient change in position, we start sending events to
@@ -117,10 +153,20 @@
you can remove the delay in delivery of touchesBegan:withEvent: to subviews by setting delaysContentTouches to NO.
*/
-@property(nonatomic,readonly,getter=isTracking) BOOL tracking; // returns YES if user has touched. may not yet have started dragging
-@property(nonatomic,readonly,getter=isDragging) BOOL dragging; // returns YES if user has started scrolling. this may require some time and or distance to move to initiate dragging
-@property(nonatomic,readonly,getter=isDecelerating) BOOL decelerating; // returns YES if user isn't dragging (touch up) but scroll view is still moving
+// Returns YES if user has touched. May not yet have started dragging
+@property(nonatomic, readonly, getter=isTracking) BOOL tracking;
+// Returns YES if user has started scrolling. It may require some time and/or distance to move to initiate dragging
+@property(nonatomic, readonly, getter=isDragging) BOOL dragging;
+
+// Returns YES if user isn't dragging (touch up) but scroll view is still moving
+@property(nonatomic, readonly, getter=isDecelerating) BOOL decelerating;
+
+// Returns YES if the scroll view is currently animating a `contentOffset` change
+// For example, this could be from a `setContentOffset:animated:` call
+// Note that deceleration will *not* cause this property to be YES
+@property (nonatomic, readonly, getter=isScrollAnimating) BOOL scrollAnimating API_AVAILABLE(ios(17.4));
+
@property(nonatomic) BOOL delaysContentTouches; // default is YES. if NO, we immediately call -touchesShouldBegin:withEvent:inContentView:. this has no effect on presses
@property(nonatomic) BOOL canCancelContentTouches; // default is YES. if NO, then once we start tracking, we don't try to drag if the touch moves. this has no effect on presses
@@ -148,22 +194,37 @@
- (void)setZoomScale:(CGFloat)scale animated:(BOOL)animated API_AVAILABLE(ios(3.0));
- (void)zoomToRect:(CGRect)rect animated:(BOOL)animated API_AVAILABLE(ios(3.0));
-@property(nonatomic) BOOL bouncesZoom; // default is YES. if set, user can go past min/max zoom while gesturing and the zoom will animate to the min/max value at gesture end
+// If set, the user can zoom past the min/max scale while gesturing and the scale will animate to the min/max value when the gesture ends
+// Default: YES
+@property (nonatomic) BOOL bouncesZoom;
-@property(nonatomic,readonly,getter=isZooming) BOOL zooming; // returns YES if user in zoom gesture
-@property(nonatomic,readonly,getter=isZoomBouncing) BOOL zoomBouncing; // returns YES if we are in the middle of zooming back to the min/max value
+// Returns YES if the user is performing a zoom gesture
+@property (nonatomic, readonly, getter=isZooming) BOOL zooming;
+// Returns YES if ths scroll view is in the middle of zooming back to the min/max zoom scale
+@property (nonatomic, readonly, getter=isZoomBouncing) BOOL zoomBouncing;
+
+// Returns YES if the scroll view is currently animating a `zoomScale` change
+// For example, this could be from a `setZoomScale:animated:` call
+@property (nonatomic, readonly, getter=isZoomAnimating) BOOL zoomAnimating API_AVAILABLE(ios(17.4));
+
// When the user taps the status bar, the scroll view beneath the touch which is closest to the status bar will be scrolled to top, but only if its `scrollsToTop` property is YES, its delegate does not return NO from `-scrollViewShouldScrollToTop:`, and it is not already at the top.
// On iPhone, we execute this gesture only if there's one on-screen scroll view with `scrollsToTop` == YES. If more than one is found, none will be scrolled.
-@property(nonatomic) BOOL scrollsToTop API_UNAVAILABLE(tvos); // default is YES.
+// Default: YES
+@property (nonatomic) BOOL scrollsToTop API_UNAVAILABLE(tvos);
+// Stops any scrolling or zooming, whether initiated programmatically or by the user
+// Stops scrolling at the current `contentOffset` during deceleration unless bouncing, in which case the `contentOffset` is moved within the valid range
+// If paging is enabled, aligns `contentOffset` with a page boundary
+- (void)stopScrollingAndZooming API_AVAILABLE(ios(17.4));
+
// Use these accessors to configure the scroll view's built-in gesture recognizers.
// Do not change the gestures' delegates or override the getters for these properties.
// Change `panGestureRecognizer.allowedTouchTypes` to limit scrolling to a particular set of touch types.
@property(nonatomic, readonly) UIPanGestureRecognizer *panGestureRecognizer API_AVAILABLE(ios(5.0));
// `pinchGestureRecognizer` will return nil when zooming is disabled.
-@property(nullable, nonatomic, readonly) UIPinchGestureRecognizer *pinchGestureRecognizer API_AVAILABLE(ios(5.0));
+@property(nullable, nonatomic, readonly) UIPinchGestureRecognizer *pinchGestureRecognizer API_AVAILABLE(ios(5.0)) API_UNAVAILABLE(tvos);
// `directionalPressGestureRecognizer` is disabled by default, but can be enabled to perform scrolling in response to up / down / left / right arrow button presses directly, instead of scrolling indirectly in response to focus updates.
@property(nonatomic, readonly) UIGestureRecognizer *directionalPressGestureRecognizer API_DEPRECATED("Configuring the panGestureRecognizer for indirect scrolling automatically supports directional presses now, so this property is no longer useful.", tvos(9.0, 11.0));
diff -ruN /Applications/Xcode_15.2.0.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/UIStandardTextCursorView.h /Applications/Xcode_15.3.0-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/UIStandardTextCursorView.h
--- /Applications/Xcode_15.2.0.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/UIStandardTextCursorView.h 1969-12-31 19:00:00
+++ /Applications/Xcode_15.3.0-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/UIStandardTextCursorView.h 2024-01-19 02:21:10
@@ -0,0 +1,25 @@
+#if (defined(USE_UIKIT_PUBLIC_HEADERS) && USE_UIKIT_PUBLIC_HEADERS) || !__has_include(<UIKitCore/UIStandardTextCursorView.h>)
+//
+// UIStandardTextCursorView.h
+// UIKit
+//
+// Copyright © 2023 Apple Inc. All rights reserved.
+//
+
+#import <UIKit/UIKitCore.h>
+#import <UIKit/UITextCursorView.h>
+
+NS_HEADER_AUDIT_BEGIN(nullability, sendability)
+
+/// @class @c UIStandardTextCursorView
+/// @abstract Displays a flashing cursor (aka "caret") view. Concrete implementation of UITextCursorView.
+/// @discussion When a selection is not ranged (or has a zero-length), a cursor view is displayed.
+UIKIT_EXTERN API_AVAILABLE(ios(17.4))
+@interface UIStandardTextCursorView : UIView <UITextCursorView>
+@end
+
+NS_HEADER_AUDIT_END(nullability, sendability)
+
+#else
+#import <UIKitCore/UIStandardTextCursorView.h>
+#endif
diff -ruN /Applications/Xcode_15.2.0.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/UITextCursorDropPositionAnimator.h /Applications/Xcode_15.3.0-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/UITextCursorDropPositionAnimator.h
--- /Applications/Xcode_15.2.0.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/UITextCursorDropPositionAnimator.h 1969-12-31 19:00:00
+++ /Applications/Xcode_15.3.0-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/UITextCursorDropPositionAnimator.h 2024-01-19 02:21:10
@@ -0,0 +1,43 @@
+#if (defined(USE_UIKIT_PUBLIC_HEADERS) && USE_UIKIT_PUBLIC_HEADERS) || !__has_include(<UIKitCore/UITextCursorDropPositionAnimator.h>)
+//
+// UITextCursorDropPositionAnimator.h
+// UIKit
+//
+// Copyright © 2023 Apple Inc. All rights reserved.
+//
+
+#import <UIKit/UITextCursorView.h>
+#import <UIKit/UITextInput.h>
+
+/// @class @c UITextCursorDropPositionAnimator
+/// @abstract Provides a mechanism for displaying and animating a temporary text cursor to indicate a drop location.
+/// @discussion For custom text view implementations that implement drag and drop functionality, use this animator providing either your own UITextCursorView
+/// implementation or a concrete implementation to indicate at which point in your document the dropped item will be inserted. Using this animator provides
+/// you with all of the default system animations for how the text cursor would behave.
+UIKIT_EXTERN API_AVAILABLE(ios(17.4)) NS_SWIFT_UI_ACTOR
+@interface UITextCursorDropPositionAnimator : NSObject
+
+/// The cursor view to be animated.
+@property (nonatomic, readonly) UIView<UITextCursorView> *cursorView;
+
+/// The object that implements the UITextInput protocol, used to query for geometry information regarding cursor placement.
+@property (nonatomic, readonly) UIView<UITextInput> *textInput;
+
+/// Creates an animator for the given text cursor view implementation, and the document object that implements the UITextInput protocol.
+- (instancetype)initWithTextCursorView:(UIView<UITextCursorView> *)cursorView textInput:(UIView<UITextInput> *)textInput NS_DESIGNATED_INITIALIZER;
+
+/// Controls the visibility of the cursor.
+- (void)setCursorVisible:(BOOL)visible animated:(BOOL)animated;
+
+/// Controls the placement of the cursor, using @c textInput and @c position to compute the final frame for the cursor view.
+- (void)placeCursorAtPosition:(UITextPosition *)position animated:(BOOL)animated;
+
+/// Optionally, provide an animation block or completion block to run alongside cursor appearance or position update animations.
+- (void)animateAlongsideChanges:(void (^ __nullable)(void))animation completion:(void (^ __nullable)(void))completion;
+
+- (instancetype)init NS_UNAVAILABLE;
+@end
+
+#else
+#import <UIKitCore/UITextCursorDropPositionAnimator.h>
+#endif
diff -ruN /Applications/Xcode_15.2.0.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/UITextCursorView.h /Applications/Xcode_15.3.0-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/UITextCursorView.h
--- /Applications/Xcode_15.2.0.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/UITextCursorView.h 2023-11-12 11:31:39
+++ /Applications/Xcode_15.3.0-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/UITextCursorView.h 2024-01-19 02:21:06
@@ -6,11 +6,11 @@
// Copyright © 2023 Apple Inc. All rights reserved.
//
-#import <UIKit/UIKitCore.h>
+#import <UIKit/UIView.h>
NS_HEADER_AUDIT_BEGIN(nullability, sendability)
-/// @ protocol UITextCursorView
+/// @protocol UITextCursorView
/// @abstract A view that displays a flashing cursor (aka "caret") view.
/// @discussion When a selection is not ranged (or has a zero-length), a cursor view is displayed.
UIKIT_EXTERN API_AVAILABLE(ios(17.0)) NS_SWIFT_UI_ACTOR
diff -ruN /Applications/Xcode_15.2.0.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/UITextInput.h /Applications/Xcode_15.3.0-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/UITextInput.h
--- /Applications/Xcode_15.2.0.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/UITextInput.h 2023-11-12 05:16:36
+++ /Applications/Xcode_15.3.0-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/UITextInput.h 2024-01-19 02:20:39
@@ -230,6 +230,10 @@
- (void)updateFloatingCursorAtPoint:(CGPoint)point API_AVAILABLE(ios(9.0));
- (void)endFloatingCursor API_AVAILABLE(ios(9.0));
+/// Similar to `-caretRectForPosition:`, optionally provide a transform for the caret at `position`. As with all geometry information in this protocol,
+/// transforms are assumed to be relative to the `textInputView` coordinate space. If unimplemented, the identity transform is assumed.
+- (CGAffineTransform)caretTransformForPosition:(UITextPosition *)position API_AVAILABLE(ios(17.4));
+
/**
* Called when the text input is preparing an edit menu presentation for the specified text range.
*
@@ -282,6 +286,11 @@
@property (nonatomic, readonly) BOOL containsStart; // Returns YES if the rect contains the start of the selection.
@property (nonatomic, readonly) BOOL containsEnd; // Returns YES if the rect contains the end of the selection.
@property (nonatomic, readonly) BOOL isVertical; // Returns YES if the rect is for vertically oriented text.
+
+/// Custom transform for highlight rects.
+/// This transform is assumed to be in the `textInputView` coordinate space.
+/// Default is CGAffineTransformIdentity (no transform applied).
+@property (nonatomic, readonly) CGAffineTransform transform API_AVAILABLE(ios(17.4));
@end
diff -ruN /Applications/Xcode_15.2.0.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/UITextInputTraits.h /Applications/Xcode_15.3.0-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/UITextInputTraits.h
--- /Applications/Xcode_15.2.0.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/UITextInputTraits.h 2023-11-12 11:31:40
+++ /Applications/Xcode_15.3.0-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/UITextInputTraits.h 2024-01-19 04:11:56
@@ -262,6 +262,10 @@
UIKIT_EXTERN UITextContentType const UITextContentTypeCreditCardExpirationYear API_AVAILABLE(ios(17.0));
UIKIT_EXTERN UITextContentType const UITextContentTypeCreditCardType API_AVAILABLE(ios(17.0));
+/// eSIM activation
+UIKIT_EXTERN UITextContentType const UITextContentTypeCellularEID API_AVAILABLE(ios(17.4));
+UIKIT_EXTERN UITextContentType const UITextContentTypeCellularIMEI API_AVAILABLE(ios(17.4));
+
NS_HEADER_AUDIT_END(nullability, sendability)
#else
diff -ruN /Applications/Xcode_15.2.0.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/UITextSelectionDisplayInteraction.h /Applications/Xcode_15.3.0-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/UITextSelectionDisplayInteraction.h
--- /Applications/Xcode_15.2.0.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/UITextSelectionDisplayInteraction.h 2023-11-12 11:31:43
+++ /Applications/Xcode_15.3.0-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/UITextSelectionDisplayInteraction.h 2024-01-19 02:21:10
@@ -16,6 +16,7 @@
NS_ASSUME_NONNULL_BEGIN
@class UITextSelectionDisplayInteraction;
+@protocol UITextCursorView;
UIKIT_EXTERN API_AVAILABLE(ios(17.0)) NS_SWIFT_UI_ACTOR
@protocol UITextSelectionDisplayInteractionDelegate <NSObject>
diff -ruN /Applications/Xcode_15.2.0.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/UITextView.h /Applications/Xcode_15.3.0-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/UITextView.h
--- /Applications/Xcode_15.2.0.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/UITextView.h 2023-11-12 11:44:20
+++ /Applications/Xcode_15.3.0-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/UITextView.h 2024-01-19 02:21:14
@@ -80,7 +80,7 @@
*
* @return Return a UIAction to be performed when the text item is interacted with. Return @c nil to prevent the action from being performed.
*/
-- (nullable UIAction *)textView:(UITextView *)textView primaryActionForTextItem:(UITextItem *)textItem defaultAction:(UIAction *)defaultAction API_AVAILABLE(ios(17.0)) API_UNAVAILABLE(watchos, tvos);
+- (nullable UIAction *)textView:(UITextView *)textView primaryActionForTextItem:(UITextItem *)textItem defaultAction:(UIAction *)defaultAction API_AVAILABLE(ios(17.0)) API_UNAVAILABLE(tvos, watchos);
/**
* Asks the delegate for the menu configuration to be performed when interacting with a text item.
- README
- xcode13.0 Binding Status
- xcode13.1 Binding Status
- xcode13.2 Binding Status
- xcode13.3 Binding Status
- xcode13.4 Binding Status
- xcode14.0 Binding Status
- xcode14.1 Binding Status
- xcode14.2 Binding Status
- xcode14.3 Binding Status
- xcode15.0 Binding Status
- xcode15.1 Binding Status
- xcode15.3 Binding Status
- xcode15.4 Binding Status
- xcode16.0 Binding Status
- xcode16.1 Binding Status
- xcode16.2 Binding Status