Skip to content

UIKit tvOS xcode9 beta4

Vincent Dondain edited this page Aug 23, 2017 · 4 revisions

#UIKit.framework

diff -ruN /Applications/Xcode9-beta3.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/UIApplication.h /Applications/Xcode9-beta4.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/UIApplication.h
--- /Applications/Xcode9-beta3.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/UIApplication.h	2017-06-30 23:29:28.000000000 -0400
+++ /Applications/Xcode9-beta4.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/UIApplication.h	2017-07-20 23:01:09.000000000 -0400
@@ -377,7 +377,7 @@
 // attention. Once a session has been created from a configuration object with that identifier, the session's delegate will begin receiving
 // callbacks. If such a session has already been created (if the app is being resumed, for instance), then the delegate will start receiving
 // callbacks without any action by the application. You should call the completionHandler as soon as you're finished handling the callbacks.
-- (void)application:(UIApplication *)application handleEventsForBackgroundURLSession:(NSString *)identifier completionHandler:(void (^)())completionHandler NS_AVAILABLE_IOS(7_0);
+- (void)application:(UIApplication *)application handleEventsForBackgroundURLSession:(NSString *)identifier completionHandler:(void (^)(void))completionHandler NS_AVAILABLE_IOS(7_0);
 
 - (void)application:(UIApplication *)application handleWatchKitExtensionRequest:(nullable NSDictionary *)userInfo reply:(void(^)(NSDictionary * __nullable replyInfo))reply NS_AVAILABLE_IOS(8_2);
 
diff -ruN /Applications/Xcode9-beta3.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/UIKit.apinotes /Applications/Xcode9-beta4.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/UIKit.apinotes
--- /Applications/Xcode9-beta3.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/UIKit.apinotes	2017-06-30 23:29:29.000000000 -0400
+++ /Applications/Xcode9-beta4.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/UIKit.apinotes	2017-07-14 03:22:39.000000000 -0400
@@ -371,6 +371,11 @@
   - Selector: 'initWithTypeIdentifiersForAcceptingClass:'
     MethodKind: Instance
     SwiftName: 'init(forAccepting:)'
+- Name: UIFocusSystem
+  Methods:
+  - Selector: 'environment:containsEnvironment:'
+    MethodKind: Class
+    SwiftPrivate: true
 Protocols:
 - Name: UIAppearance
   Methods:
diff -ruN /Applications/Xcode9-beta3.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/UINavigationBar.h /Applications/Xcode9-beta4.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/UINavigationBar.h
--- /Applications/Xcode9-beta3.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/UINavigationBar.h	2017-06-30 23:33:13.000000000 -0400
+++ /Applications/Xcode9-beta4.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/UINavigationBar.h	2017-07-20 23:01:09.000000000 -0400
@@ -81,11 +81,11 @@
 
 /* You may specify the font, text color, and shadow properties for the title in the text attributes dictionary, using the keys found in NSAttributedString.h.
  */
-@property(nullable,nonatomic,copy) NSDictionary<NSString *,id> *titleTextAttributes NS_AVAILABLE_IOS(5_0) UI_APPEARANCE_SELECTOR;
+@property(nullable,nonatomic,copy) NSDictionary<NSAttributedStringKey, id> *titleTextAttributes NS_AVAILABLE_IOS(5_0) UI_APPEARANCE_SELECTOR;
 
 /* You may specify the font, text color, and shadow properties for the large title in the text attributes dictionary, using the keys found in NSAttributedString.h.
  */
-@property(nullable, nonatomic, copy) NSDictionary <NSAttributedStringKey, id> *largeTitleTextAttributes UI_APPEARANCE_SELECTOR API_AVAILABLE(ios(11.0)) API_UNAVAILABLE(tvos);
+@property(nullable, nonatomic, copy) NSDictionary<NSAttributedStringKey, id> *largeTitleTextAttributes UI_APPEARANCE_SELECTOR API_AVAILABLE(ios(11.0)) API_UNAVAILABLE(tvos);
 
 - (void)setTitleVerticalPositionAdjustment:(CGFloat)adjustment forBarMetrics:(UIBarMetrics)barMetrics NS_AVAILABLE_IOS(5_0) UI_APPEARANCE_SELECTOR;
 - (CGFloat)titleVerticalPositionAdjustmentForBarMetrics:(UIBarMetrics)barMetrics NS_AVAILABLE_IOS(5_0) UI_APPEARANCE_SELECTOR;
diff -ruN /Applications/Xcode9-beta3.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/UIScreen.h /Applications/Xcode9-beta4.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/UIScreen.h
--- /Applications/Xcode9-beta3.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/UIScreen.h	2017-06-30 23:33:14.000000000 -0400
+++ /Applications/Xcode9-beta4.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/UIScreen.h	2017-07-14 03:19:16.000000000 -0400
@@ -22,6 +22,8 @@
 // Object is the UIScreen which changed. [object currentMode] is the new UIScreenMode.
 UIKIT_EXTERN NSNotificationName const UIScreenModeDidChangeNotification NS_AVAILABLE_IOS(3_2);
 UIKIT_EXTERN NSNotificationName const UIScreenBrightnessDidChangeNotification NS_AVAILABLE_IOS(5_0);
+// Object is the UIScreen which changed. [object isCaptured] is the new value of captured property.
+UIKIT_EXTERN NSNotificationName const UIScreenCapturedDidChangeNotification NS_AVAILABLE_IOS(11_0);
 
 // when the connected screen is overscanning, UIScreen can attempt to compensate for the overscan to avoid clipping
 typedef NS_ENUM(NSInteger, UIScreenOverscanCompensation) {
@@ -57,6 +59,7 @@
 @property(nonatomic,readonly) UIEdgeInsets overscanCompensationInsets NS_AVAILABLE_IOS(9_0);  // The amount that should be inset to avoid clipping
 
 @property(nullable, nonatomic,readonly,strong) UIScreen *mirroredScreen NS_AVAILABLE_IOS(4_3);          // The screen being mirrored by the receiver. nil if mirroring is disabled or unsupported. Moving a UIWindow to this screen will disable mirroring
+@property(nonatomic,readonly,getter=isCaptured) BOOL captured NS_AVAILABLE_IOS(11_0); // True if this screen is being captured (e.g. recorded, AirPlayed, mirrored, etc.)
 
 @property(nonatomic) CGFloat brightness NS_AVAILABLE_IOS(5_0) __TVOS_PROHIBITED;        // 0 .. 1.0, where 1.0 is maximum brightness. Only supported by main screen.
 @property(nonatomic) BOOL wantsSoftwareDimming NS_AVAILABLE_IOS(5_0) __TVOS_PROHIBITED; // Default is NO. If YES, brightness levels lower than that of which the hardware is capable are emulated in software, if neccessary. Having enabled may entail performance cost.
diff -ruN /Applications/Xcode9-beta3.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/UISearchController.h /Applications/Xcode9-beta4.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/UISearchController.h
--- /Applications/Xcode9-beta3.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/UISearchController.h	2017-06-30 23:29:28.000000000 -0400
+++ /Applications/Xcode9-beta4.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/UISearchController.h	2017-07-14 03:19:16.000000000 -0400
@@ -44,7 +44,7 @@
 
 @property (nullable, nonatomic, weak) id <UISearchControllerDelegate> delegate;
 @property (nonatomic, assign) BOOL dimsBackgroundDuringPresentation __TVOS_PROHIBITED; // default is YES, and has the same behavior as obscuresBackgroundDuringPresentation.
-@property (nonatomic, assign) BOOL obscuresBackgroundDuringPresentation NS_AVAILABLE_IOS(9_1); // default is YES
+@property (nonatomic, assign) BOOL obscuresBackgroundDuringPresentation NS_AVAILABLE_IOS(9_1); // default is YES. On tvOS, defaults to NO when contained in UISearchContainerViewController.
 @property (nonatomic, assign) BOOL hidesNavigationBarDuringPresentation;     // default is YES
 
 @property (nullable, nonatomic, strong, readonly) UIViewController *searchResultsController;
diff -ruN /Applications/Xcode9-beta3.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/UITableView.h /Applications/Xcode9-beta4.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/UITableView.h
--- /Applications/Xcode9-beta3.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/UITableView.h	2017-07-05 22:51:37.000000000 -0400
+++ /Applications/Xcode9-beta4.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/UITableView.h	2017-07-20 23:10:03.000000000 -0400
@@ -52,7 +52,7 @@
 
 @class UITableView, UINib, UITableViewHeaderFooterView, UIVisualEffect;
 @protocol UITableViewDataSource, UITableViewDataSourcePrefetching;
-@class UIDragItem, UIDragPreviewParameters, UIDragPreviewTarget, UITableViewDropProposal;
+@class UIDragItem, UIDragPreviewParameters, UIDragPreviewTarget, UITableViewDropProposal, UITableViewPlaceholder, UITableViewDropPlaceholder;
 @protocol UISpringLoadedInteractionContext, UIDragSession, UIDropSession;
 @protocol UITableViewDragDelegate, UITableViewDropDelegate, UITableViewDropCoordinator, UITableViewDropItem, UITableViewDropPlaceholderContext;
 
@@ -310,6 +310,7 @@
 @property (nonatomic, copy, nullable) UIVisualEffect *separatorEffect NS_AVAILABLE_IOS(8_0) UI_APPEARANCE_SELECTOR __TVOS_PROHIBITED; // effect to apply to table separators
 
 @property (nonatomic) BOOL cellLayoutMarginsFollowReadableWidth NS_AVAILABLE_IOS(9_0); // if cell margins are derived from the width of the readableContentGuide.
+@property (nonatomic) BOOL insetsContentViewsToSafeArea API_AVAILABLE(ios(11.0), tvos(11.0)); // default value is YES
 
 @property (nonatomic, strong, nullable) UIView *tableHeaderView;                           // accessory view for above row content. default is nil. not to be confused with section header
 @property (nonatomic, strong, nullable) UIView *tableFooterView;                           // accessory view below content. default is nil. not to be confused with section footer
@@ -496,6 +497,10 @@
 // Called when the drop session completed, regardless of outcome. Useful for performing any cleanup.
 - (void)tableView:(UITableView *)tableView dropSessionDidEnd:(id<UIDropSession>)session;
 
+// Allows customization of the preview used when dropping to a newly inserted row.
+// If not implemented or if nil is returned, the entire cell will be used for the preview.
+- (nullable UIDragPreviewParameters *)tableView:(UITableView *)tableView dropPreviewParametersForRowAtIndexPath:(NSIndexPath *)indexPath;
+
 @end
 
 
@@ -551,16 +556,13 @@
 @property (nonatomic, readonly) id<UIDropSession> session;
 
 // Animate the dragItem to an automatically inserted placeholder row.
-// A placeholder cell will be created for the reuse identifier and inserted at the specified indexPath without requiring a dataSource update.
-// The cellUpdateHandler will be called whenever the placeholder cell becomes visible; -tableView:cellForRowAtIndexPath: will not be called
-// for the placeholder. The rowHeight you provide will be used for the placeholder, or you may pass UITableViewAutomaticDimension for the
-// rowHeight to have the placeholder cell self-size if the table view is using estimated row heights.
 // Once the dragItem data is available, you can exchange the temporary placeholder cell with the final cell using the placeholder context
 // method -commitInsertionWithDataSourceUpdates:
-- (id<UITableViewDropPlaceholderContext>)dropItem:(UIDragItem *)dragItem toPlaceholderInsertedAtIndexPath:(NSIndexPath *)indexPath withReuseIdentifier:(NSString *)reuseIdentifier rowHeight:(CGFloat)rowHeight cellUpdateHandler:(void (^)(__kindof UITableViewCell *))cellUpdateHandler;
+- (id<UITableViewDropPlaceholderContext>)dropItem:(UIDragItem *)dragItem toPlaceholder:(UITableViewDropPlaceholder *)placeholder;
 
 // Animate the dragItem to a row that you inserted at this index path.
 // You must call -performBatchUpdates:completion: to update your data source and insert a new row into the table view prior to calling this method.
+// If desired, use the drop delegate method -tableView:dropPreviewParametersForRowAtIndexPath: to provide preview parameters.
 - (id<UIDragAnimating>)dropItem:(UIDragItem *)dragItem toRowAtIndexPath:(NSIndexPath *)indexPath;
 
 // Animate the dragItem to a rect inside an existing row.
@@ -576,6 +578,30 @@
 
 
 API_AVAILABLE(ios(11.0)) API_UNAVAILABLE(tvos, watchos)
+@interface UITableViewPlaceholder : NSObject
+
+// A placeholder cell will be dequeued for the reuse identifier and inserted at the specified index path without requiring a data source update.
+// You may use UITableViewAutomaticDimension for the rowHeight to have the placeholder cell self-size if the table view is using estimated row heights.
+- (instancetype)initWithInsertionIndexPath:(NSIndexPath *)insertionIndexPath reuseIdentifier:(NSString *)reuseIdentifier rowHeight:(CGFloat)rowHeight NS_DESIGNATED_INITIALIZER;
+- (instancetype)init NS_UNAVAILABLE;
++ (instancetype)new NS_UNAVAILABLE;
+
+// Called whenever the placeholder cell is visible to update the contents of the cell.
+@property (nonatomic, nullable, copy) void(^cellUpdateHandler)(__kindof UITableViewCell *);
+
+@end
+
+API_AVAILABLE(ios(11.0)) API_UNAVAILABLE(tvos, watchos)
+@interface UITableViewDropPlaceholder : UITableViewPlaceholder
+
+// Allows customization of the preview used when dropping to a placeholder.
+// If no block is set, or if nil is returned, the entire cell will be used for the preview.
+@property (nonatomic, nullable, copy) UIDragPreviewParameters * _Nullable (^previewParametersProvider)(__kindof UITableViewCell *);
+
+@end
+
+
+API_AVAILABLE(ios(11.0)) API_UNAVAILABLE(tvos, watchos)
 @protocol UITableViewDropItem <NSObject>
 
 // Retrieve drop data from the dragItem's itemProvider.
diff -ruN /Applications/Xcode9-beta3.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/UITextField.h /Applications/Xcode9-beta4.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/UITextField.h
--- /Applications/Xcode9-beta3.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/UITextField.h	2017-07-05 22:49:29.000000000 -0400
+++ /Applications/Xcode9-beta4.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/UITextField.h	2017-07-14 03:22:39.000000000 -0400
@@ -11,11 +11,8 @@
 #import <UIKit/UIControl.h>
 #import <UIKit/UIFont.h>
 #import <UIKit/UIStringDrawing.h>
-#if __has_include(<UIKit/UIDragInteraction.h>)
-// These will be public soon
 #import <UIKit/UITextDragging.h>
 #import <UIKit/UITextDropping.h>
-#endif
 #import <UIKit/UITextInput.h>
 #import <UIKit/UIContentSizeCategoryAdjusting.h>
 #import <UIKit/UITextPasteConfigurationSupporting.h>
@@ -117,11 +114,8 @@
 
 #if TARGET_OS_IOS
 
-#if __has_include(<UIKit/UIDragInteraction.h>)
-// These will be public soon
 @interface UITextField () <UITextDraggable, UITextDroppable, UITextPasteConfigurationSupporting>
 @end
-#endif
 
 #endif
 
 
Clone this wiki locally