Repository navigation
CarPlay iOS xcode27.2 b3
Alex Soto edited this page Oct 17, 2026
·
1 revision
#CarPlay.framework
diff -ruN /Applications/Xcode_27.1.0.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/CarPlay.framework/Headers/CPMapPanel.h /Applications/Xcode_27.2.0-beta3.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/CarPlay.framework/Headers/CPMapPanel.h
--- /Applications/Xcode_27.1.0.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/CarPlay.framework/Headers/CPMapPanel.h 2026-08-16 03:00:39
+++ /Applications/Xcode_27.2.0-beta3.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/CarPlay.framework/Headers/CPMapPanel.h 2026-10-04 02:57:26
@@ -15,46 +15,111 @@
NS_ASSUME_NONNULL_BEGIN
+/**
+ The interface you use to respond to the appearance and disappearance of the panel.
+
+ If you need to know when the system shows or hides the map panel, implement this protocol in a custom object and
+ assign it to the ``CPMapPanel/delegate`` property of your ``CPMapPanel`` object. The system calls the methods
+ of your object after it shows or hides the panel.
+ */
API_AVAILABLE(ios(27.0)) API_UNAVAILABLE(tvos) API_UNAVAILABLE(macos, watchos)
NS_SWIFT_NAME(CPMapPanel.Delegate)
@protocol CPMapPanelDelegate <NSObject>
@optional
+/**
+ Tells the delegate that the system displayed the specified map panel.
+
+ - Parameters:
+ - panel: The panel that appeared in your map interface.
+
+ Shortly after a panel appears in your CarPlay interface, the system calls this method to give you a chance to respond. Use this
+ method to perform any additional tasks that require the panel to be visible. The system calls this method on your app’s main
+ thread after any animations to display the panel.
+ */
- (void)panelDidShow:(CPMapPanel *)panel;
+
+/**
+ Tells the delegate that the system hid the specified map panel.
+
+ - Parameters:
+ - panel: The panel that disappeared from your map interface.
+
+ Shortly after the system removes a map panel from your CarPlay interface, the system calls this method to give you a chance
+ to respond. Use this method to perform any cleanup tasks associated with the panel’s disappearance. The system calls this method
+ on your app’s main thread.
+ */
- (void)panelDidHide:(CPMapPanel *)panel;
@end
+/**
+ An overlay for a custom map interface that shows navigation-related instructions or information over a portion of the map.
+
+ When you want to display information on top of your custom map interface, create a ``CPMapPanel`` object and fill it with the
+ information to display. For example, you might use this panel to display a list of waypoints, nearby points of interest, route information,
+ or other content. When you show this panel from a ``CPMapTemplate`` object, CarPlay layers the panel on top of your custom map,
+ covering only a portion of it. Map panels support a navigation-style interface structure, allowing you to create a hierarchical
+ structure for navigating your panel content. To add a new level of hierarchy, _push_ a new panel using the map template methods. To remove
+ a panel, _pop_ it off the top of the navigation stack using the map template methods.
+
+ Create an instance of this panel when you want to add navigation-related details to your map interface. The panel displays content you
+ provide using the ``CPMapPanelSection`` and ``CPMapPanelButtonConfiguration`` types. When you’re ready to display
+ the panel over your map, call the ``CPMapTemplate/showPanel(_:completion:)`` or ``CPMapTemplate/pushPanel(_:completion:)``
+ method of your ``CPMapTemplate`` object. If your panel’s ``CPPanel/showsCloseButton`` property is `true`, the driver
+ can dismiss the panel at any time; otherwise, hide or dismiss the panel programmatically using your map template’s
+ ``CPMapTemplate/hidePanel(completion:)`` or ``CPMapTemplate/popPanel(completion:)`` method.
+
+ To monitor the appearance and disappearance of the panel, assign a delegate object to your map panel. The delegate object adopts the
+ ``CPMapPanel/Delegate`` protocol and receives callbacks when your panel’s visibility changes. If you change the configured
+ sections or their contents after you display the panel, CarPlay updates your interface accordingly.
+ */
API_AVAILABLE(ios(27.0)) API_UNAVAILABLE(tvos) API_UNAVAILABLE(macos, watchos)
@interface CPMapPanel : CPPanel
/**
- Initializes a new overlay page.
+ Creates and configures a new map panel for display over your navigation app’s map template.
- @param title An optional title for the page.
- @param sections An array of @c CPPanelListSection objects describing the content of the page.
- @param buttonConfiguration An optional button configuration for the page.
- @return A new @c CPPanelList instance
- */
+ - Parameters:
+ - title: The title of the map panel. This title appears at the top of the panel display. The panel stores a copy of the string you provide.
+ - sections: The information to display in the panel. Use this parameter to specify route options, charging stations, or other relevant content. If the number of items in this array exceeds the value in the ``CPPanel/maximumPanelItemsCount`` property, the map panel ignores any array items past the maximum. The system stores a copy of the array you provide.
+ - buttonConfiguration: Optional buttons and travel estimate data to display at the bottom of the panel. Specify `nil` if you don’t want to include any buttons in the panel.
+ - Returns: A new map panel instance.
+*/
- (instancetype)initWithTitle:(nullable NSString *)title
sections:(NSArray<CPMapPanelSection *> *)sections
buttonConfiguration:(nullable CPMapPanelButtonConfiguration *)buttonConfiguration;
/**
- The title of the page.
- */
+ The title to display at the top of the panel.
+*/
@property (nonatomic, copy, readonly, nullable) NSString *title;
/**
- The sections contained in this page.
+ The sections of content to display in the panel.
+
+ You specify this information initially when you create the panel, but can also update the list of sections by assigning a new value
+ to this property. When assigning a new value to this property, the panel discards the previous data and stores a copy of the
+ new sections you provide.
+
+ If the panel isn’t tall enough to display all of the sections at the same time, it places them in a scrollable interface.
*/
@property (nonatomic, copy, readwrite) NSArray<CPMapPanelSection *> *sections;
/**
- The button configuration for this page.
+ The button information and travel estimates to display in the panel.
+
+ You specify this information initially when you create the panel, but can also update it by assigning a new value to
+ this property. The property stores the buttons and other map-related information to display in the panel.
+
+ The system pins the information in this type to the bottom of the map panel, keeping it visible at all times.
*/
@property (nonatomic, strong, readonly, nullable) CPMapPanelButtonConfiguration *buttonConfiguration;
/**
- The @c CPMapPanelDelegate.
+ The app-specific object that the system notifies when it hides and shows the panel.
+
+ Specify a custom object that adopts the ``CPMapPanel/Delegate`` protocol if you want to know when the map panel appears
+ or disappears from your CarPlay interface. The system maintains a weak reference to the object you provide, so keep a reference
+ to the object in your own code.
*/
@property (nonatomic, weak, nullable) id<CPMapPanelDelegate> delegate;
diff -ruN /Applications/Xcode_27.1.0.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/CarPlay.framework/Headers/CPMapPanelButtonConfiguration.h /Applications/Xcode_27.2.0-beta3.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/CarPlay.framework/Headers/CPMapPanelButtonConfiguration.h
--- /Applications/Xcode_27.1.0.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/CarPlay.framework/Headers/CPMapPanelButtonConfiguration.h 2026-08-16 03:00:41
+++ /Applications/Xcode_27.2.0-beta3.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/CarPlay.framework/Headers/CPMapPanelButtonConfiguration.h 2026-10-04 06:29:13
@@ -15,30 +15,47 @@
NS_ASSUME_NONNULL_BEGIN
+/**
+ A type that manages the action buttons and travel estimates in a map panel.
+
+ A `CPMapPanelbuttonConfiguration` object specifies the controls and details to display at the bottom of a ``CPMapPanel``.
+ Create this type when to add a primary action button and an optional secondary action button to the bottom of the panel. These
+ buttons are separate from your map panel’s section content and remain pinned to the bottom of the panel during scrolling. You can
+ also use this type to specify travel estimates you want to keep pinned to the bottom of the panel.
+
+ Instantiate this type and specify it with the rest of the panel content when initializing your ``CPMapPanel`` object. You can’t
+ change the button configuration details after you create your map panel.
+ */
API_AVAILABLE(ios(27.0)) API_UNAVAILABLE(tvos) API_UNAVAILABLE(macos, watchos)
@interface CPMapPanelButtonConfiguration : CPPanelButtonConfiguration
/**
- Initializes a map panel button configuration with a primary action, optional travel estimates,
- and an optional secondary button.
+ Initializes the map panel button configuration with the specified action buttons and travel estimates.
- @param primaryAction The primary text button for the panel.
- @param secondaryButton An optional secondary button. Note: only the image property of this button is used. Any title provided will be dropped.
- @param travelEstimates The travel estimates to display alongside the primary button.
- @return A new @c CPMapPanelButtonConfiguration instance.
+ - Parameters:
+ - primaryAction: The text button for the primary action.
+ - secondaryButton: An optional button you can use to handle a secondary action. The configuration object stores a copy
+ of the provided button in the ``CPMapPanelButtonConfiguration/secondaryButton`` property.
+ - travelEstimates: The travel estimates to display with the buttons. The configuration object stores a copy of the
+ provided travel estimates.
+ - Returns: A new map panel button configuration object.
*/
- (instancetype)initWithPrimaryAction:(CPTextButton *)primaryAction
secondaryButton:(nullable CPButton *)secondaryButton
travelEstimates:(CPTravelEstimates *)travelEstimates;
/**
- Optional travel estimates displayed alongside the primary action.
- */
+ The travel estimates to display alongside the action buttons.
+
+ Specify this information at initialization time and access it using this property.
+*/
@property (nonatomic, copy, nullable) CPTravelEstimates *travelEstimates;
/**
- An optional secondary button shown with this configuration. Note: only the image property of this button is used.
- */
+ The optional button you use to perform a secondary action.
+
+ Specify this button at initialization time and access it using this property. The value of this property can be `nil`.
+*/
@property (nonatomic, copy, readonly, nullable) CPButton *secondaryButton;
@end
diff -ruN /Applications/Xcode_27.1.0.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/CarPlay.framework/Headers/CPMapPanelItem.h /Applications/Xcode_27.2.0-beta3.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/CarPlay.framework/Headers/CPMapPanelItem.h
--- /Applications/Xcode_27.1.0.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/CarPlay.framework/Headers/CPMapPanelItem.h 2026-08-16 03:00:41
+++ /Applications/Xcode_27.2.0-beta3.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/CarPlay.framework/Headers/CPMapPanelItem.h 2026-10-04 02:57:28
@@ -18,36 +18,108 @@
NS_ASSUME_NONNULL_BEGIN
+/**
+ A type that manages the waypoint, route, trip, and other information you display in a map panel.
+
+ A `CPMapPanelItem` object stores navigation-related information and manages interactions with that information. When creating
+ a ``CPMapPanel`` to display over your custom map, configure it with one or more items with the information you want to display.
+ Use items to display information about:
+
+ * Trip details for a particular journey
+ * Travel estimates for a trip
+ * Route choices between a start and end point
+ * Route-related details such as costs and consumption metrics
+ * Charging station connection details
+ * Navigation waypoints
+
+ Create one or more `CPMapPanelItem` objects and add them to a ``CPMapPanelSection``. You can add multiple items to a section
+ and each item can contain different information. For example, you might include one item with the trip details and additional items
+ to present route-specific options. Provide a handler with your item if you want to respond when someone taps or selects the item.
+
+ Each type of item displays different information from the map panel interface. For example, an item you initialize with a ``CPTrip``
+ object displays the trip’s destination and origin plus the number of route choices. When configuring a section, you might include
+ multiple items of different types to present a complete view of the trip.
+ */
API_AVAILABLE(ios(27.0)) API_UNAVAILABLE(tvos) API_UNAVAILABLE(macos, watchos)
@interface CPMapPanelItem : CPPanelItem
/**
- Initializes a map template item wrapping a @c CPTrip.
+ Creates a map panel item with trip-related details.
+
+ - Parameters:
+ - trip: The trip object that contains the origin, destination, and route information.
+ - handler: A closure you use to respond when someone taps or selects the item. The closure takes the map panel item as a
+ parameter and returns no value. Specify `nil` if you don’t want to respond to interactions with the item.
+ - Returns: A map panel item initialized with trip information.
+
+ For this type of item, the map panel shows journey’s destination point, its origin point, and the number of available route choices.
+ This item type doesn’t show details about the individual route choice.
*/
- (instancetype)initWithTrip:(CPTrip *)trip handler:(nullable void (^)(CPMapPanelItem *item, dispatch_block_t completionBlock))handler;
/**
- Initializes a map template item wrapping a @c CPTravelEstimates.
+ Creates a map panel item with travel estimate information.
+
+ - Parameters:
+ - travelEstimates: The object that provides the remaining distance and time values for a trip.
+ - handler: A closure you use to respond when someone taps or selects the item. The closure takes the map panel item as a
+ parameter and returns no value. Specify `nil` if you don’t want to respond to interactions with the item.
+ - Returns: A map panel item initialized with travel estimates.
+
+ For this type of item, the map panel displays the expected arrival time, along with the remaining distance and time information.
*/
- (instancetype)initWithTravelEstimates:(CPTravelEstimates *)travelEstimates handler:(nullable void (^)(CPMapPanelItem *item, dispatch_block_t completionBlock))handler;
/**
- Initializes a map template item wrapping a @c CPRouteChoice.
+ Creates a map panel item with one of the route choices available for a trip.
+
+ - Parameters:
+ - routeChoice: A route choice for an upcoming trip.
+ - handler: A closure you use to respond when someone taps or selects the item. The closure takes the map panel item as a
+ parameter and returns no value. Specify `nil` if you don’t want to respond to interactions with the item.
+ - Returns: A map panel item initialized with a route choice.
+
+ For this type of item, the map panel displays the relevant route choice summaries.
*/
- (instancetype)initWithRouteChoice:(CPRouteChoice *)routeChoice handler:(nullable void (^)(CPMapPanelItem *item, dispatch_block_t completionBlock))handler;
/**
- Initializes a map template item wrapping an array of @c CPRouteDetail objects.
+ Creates a map panel item with route details.
+
+ - Parameters:
+ - routeDetails: The route detail that helps someone make an informed decision about their journey.
+ - handler: A closure you use to respond when someone taps or selects the item. The closure takes the map panel item as a
+ parameter and returns no value. Specify `nil` if you don’t want to respond to interactions with the item.
+ - Returns: A map panel item initialized with route details.
+
+ For this type of item, the map panel displays up to four route details per item.
*/
- (instancetype)initWithRouteDetails:(NSArray<CPRouteDetail *> *)routeDetails handler:(nullable void (^)(CPMapPanelItem *item, dispatch_block_t completionBlock))handler;
/**
- Initializes a map template item wrapping a @c CPChargingStationConnection.
+ Creates a map panel item with charging connection details.
+
+ - Parameters:
+ - chargingStationConnection: The details of a charging station.
+ - handler: A closure you use to respond when someone taps or selects the item. The closure takes the map panel item as a
+ parameter and returns no value. Specify `nil` if you don’t want to respond to interactions with the item.
+ - Returns: A map panel item initialized with charging information.
+
+ For this type of item, the map panel displays the charging connector type and the supported power and voltage outputs.
*/
- (instancetype)initWithChargingStationConnection:(CPChargingStationConnection *)chargingStationConnection handler:(nullable void (^)(CPMapPanelItem *item, dispatch_block_t completionBlock))handler;
/**
- Initializes a map template item wrapping a @c CPMapTemplateWaypoint.
+ Creates a map panel item with waypoint information.
+
+ - Parameters:
+ - mapTemplateWaypoint: The waypoint information.
+ - image: An image to display for the waypoint.
+ - handler: A closure you use to respond when someone taps or selects the item. The closure takes the map panel item as a
+ parameter and returns no value. Specify `nil` if you don’t want to respond to interactions with the item.
+ - Returns: A map panel item initialized with waypoint details.
+
+ For this type of item, the map panel displays the waypoint name, address, and any available route details.
*/
- (instancetype)initWithMapTemplateWaypoint:(CPMapTemplateWaypoint *)mapTemplateWaypoint image:(nullable UIImage *)image handler:(nullable void (^)(CPMapPanelItem *item, dispatch_block_t completionBlock))handler;
diff -ruN /Applications/Xcode_27.1.0.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/CarPlay.framework/Headers/CPMapPanelSection.h /Applications/Xcode_27.2.0-beta3.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/CarPlay.framework/Headers/CPMapPanelSection.h
--- /Applications/Xcode_27.1.0.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/CarPlay.framework/Headers/CPMapPanelSection.h 2026-08-16 03:00:39
+++ /Applications/Xcode_27.2.0-beta3.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/CarPlay.framework/Headers/CPMapPanelSection.h 2026-10-04 06:29:11
@@ -13,30 +13,45 @@
NS_ASSUME_NONNULL_BEGIN
/**
- @c CPPanelListSection describes a section within a map template overlay page.
- Each section contains a title, a collection of content items, and an optional item selection handler.
+ A single section of a map panel that you fill with a title and one or more items.
+
+ The `CPMapPanelSection` class organizes a single section of content in a ``CPMapPanel`` interface. In a navigation app,
+ you use map panels to display relevant information such as route options or the location of charging stations on top of your
+ custom map. Section objects manage one or more related items you want to display. For example, you might use one section
+ to display upcoming charging stations and a different section to display route choices.
+
+ Create a `CPMapPanelSection` object and configure it with the section title and a ``CPMapPanelItem`` object for each
+ item you want to display. Add the section to your ``CPMapPanel`` object before showing the panel from your map template.
+ If you modify a section after the panel is visible, the system updates the section’s contents in your CarPlay interface.
*/
API_AVAILABLE(ios(27.0)) API_UNAVAILABLE(tvos) API_UNAVAILABLE(macos, watchos)
@interface CPMapPanelSection : NSObject <NSSecureCoding>
/**
- Initializes a section with items conforming to @c CPMapPanelItem.
- Only items that adopt @c CPMapPanelItem are supported when displaying
- panel sections on a @c CPMapTemplate.
+ Initializes the section with the specified title and items.
- @param title An optional title for the section.
- @param items An array of @c CPMapPanelItem conforming objects to display in the section.
+ - Parameters:
+ - title: The localized title of the section. The system displays this string at the top of the section’s content. The section
+ object stores a copy of the provided string. Specify `nil` if you don’t want to display a title for the section.
+ - items: The array of items to display in the section. Specify at least one item in this array. The section object stores a
+ copy of the provided array.
+ - Returns: An initialized section object.
*/
- (instancetype)initWithTitle:(nullable NSString *)title
items:(NSArray<CPMapPanelItem *> *)items NS_DESIGNATED_INITIALIZER;
/**
- The title of the section.
+ The localized string to display for the section title.
+
+ Set this property to `nil` if you don’t want to display a title for the section.
*/
@property (nonatomic, copy, nullable) NSString *title;
/**
- The items displayed in this section, or @c nil if the section does not contain items.
+ The items to display in the section.
+
+ You specify the set of items at initialization time, but can change the items at any time. If you change the value of this property
+ while the panel is visible, the system updates your CarPlay interface to reflect the changes.
*/
@property (nonatomic, copy) NSArray<CPMapPanelItem *> *items;
diff -ruN /Applications/Xcode_27.1.0.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/CarPlay.framework/Headers/CPNavigationAlert.h /Applications/Xcode_27.2.0-beta3.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/CarPlay.framework/Headers/CPNavigationAlert.h
--- /Applications/Xcode_27.1.0.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/CarPlay.framework/Headers/CPNavigationAlert.h 2026-08-16 03:12:33
+++ /Applications/Xcode_27.2.0-beta3.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/CarPlay.framework/Headers/CPNavigationAlert.h 2026-10-04 06:29:13
@@ -150,6 +150,9 @@
If the alert was created with the older @c primaryAction / @c secondaryAction initializer,
this property returns those actions as an array for backward compatibility.
+
+ @note CPAlertActionStyleCancel actions are rendered as standard labeled buttons
+ in the primary action row.
*/
@property (nonatomic, readonly, copy) NSArray<CPAlertAction *> *actions API_AVAILABLE(ios(27.0)) API_UNAVAILABLE(tvos);
@@ -172,6 +175,9 @@
A Boolean value indicating whether the close button is allowed to appear.
@discussion Set the value of this property to @c NO to hide the close button.
+
+ @note If the @c actions array is empty, the close button will be displayed regardless
+ of this property's value to ensure the alert remains dismissible.
Defaults to @c YES.
*/
diff -ruN /Applications/Xcode_27.1.0.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/CarPlay.framework/Headers/CPPanel.h /Applications/Xcode_27.2.0-beta3.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/CarPlay.framework/Headers/CPPanel.h
--- /Applications/Xcode_27.1.0.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/CarPlay.framework/Headers/CPPanel.h 2026-08-16 03:00:40
+++ /Applications/Xcode_27.2.0-beta3.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/CarPlay.framework/Headers/CPPanel.h 2026-10-04 06:29:12
@@ -9,20 +9,31 @@
NS_ASSUME_NONNULL_BEGIN
+/**
+ A type that provides the common behaviors for panels you display on top of your app’s content.
+
+ The `CPPanel` type defines the default behaviors for panels you display in your app. You don’t create or present
+ this type directly. Instead, instantiate one of the defined subclasses and present that type from your app’s interface.
+ For example, create a ``CPMapPanel`` and configure it with navigation-related data, and present it from a ``CPMapTemplate``
+ to overlay that information on top of your custom map.
+ */
API_AVAILABLE(ios(27.0)) API_UNAVAILABLE(tvos) API_UNAVAILABLE(macos, watchos)
@interface CPPanel : NSObject <NSSecureCoding>
/**
- The maximum panel items count.
+ The maximum number of items the panel is able to display.
+
+ Each panel subtype configures this property with the maximum number of items it’s able to display. When assembling content
+ for your panel, check the value of this property to determine precisely how many items the current type of panel supports.
*/
@property (nonatomic, class, readonly) NSInteger maximumPanelItemsCount;
/**
- A Boolean value indicating whether the close button is allowed to appear.
+ A Boolean value that indicates whether the panel displays a close button.
- @discussion Set the value of this property to @c NO to hide the close button.
-
- Defaults to YES.
+ When the value of this property is `true`, the panel displays a close button that the driver can use to dismiss the panel.
+ When the value of this property is `false`, you need to dismiss the panel programmatically from your app.
+ The default value of this property is `true`.
*/
@property (nonatomic, assign) BOOL showsCloseButton;
diff -ruN /Applications/Xcode_27.1.0.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/CarPlay.framework/Headers/CPPanelButtonConfiguration.h /Applications/Xcode_27.2.0-beta3.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/CarPlay.framework/Headers/CPPanelButtonConfiguration.h
--- /Applications/Xcode_27.1.0.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/CarPlay.framework/Headers/CPPanelButtonConfiguration.h 2026-08-16 03:00:41
+++ /Applications/Xcode_27.2.0-beta3.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/CarPlay.framework/Headers/CPPanelButtonConfiguration.h 2026-10-04 06:29:13
@@ -13,30 +13,41 @@
NS_ASSUME_NONNULL_BEGIN
/**
- @c CPPanelButtonConfiguration describes the button configuration for
- a panel list section. It contains a primary and secondary action button.
+ A type that provides the common behaviors for a button layout in a panel.
+
+ The `CPPanelButtonConfiguration` type defines the default behaviors for button configurations in a panel. You don’t
+ create this type directly or use it to configure your panel. Instead, instantiate one of the defined subclasses based on the type
+ of panel you’re configuring. For example, create a ``CPMapPanelButtonConfiguration`` object when configuring
+ content for a ``CPMapPanel`` type.
*/
API_AVAILABLE(ios(27.0)) API_UNAVAILABLE(tvos) API_UNAVAILABLE(macos, watchos)
@interface CPPanelButtonConfiguration : NSObject <NSSecureCoding>
/**
- Initializes a button configuration with a primary action and an optional secondary action.
+ Initializes the button configuration object with the specified buttons.
- @param primaryAction The primary text button for the panel.
- @param secondaryAction An optional secondary @c CPTextButton.
- @return A new @c CPPanelButtonConfiguration instance
+ - Parameters:
+ - primaryAction: The primary button for the panel. Use this button to specify the default or primary action someone
+ might want to perform. The initializer makes a copy of the provided button.
+ - secondaryAction: The secondary button for the panel. Use this to specify an additional action someone might want
+ to perform. The initializer makes a copy of the provided button, if any.
+ - Returns: An initialized panel button configuration object.
*/
- (instancetype)initWithPrimaryAction:(CPTextButton *)primaryAction
secondaryAction:(nullable CPTextButton *)secondaryAction NS_DESIGNATED_INITIALIZER;
/**
- The primary action button.
+ The primary action button for the panel.
+
+ Specify the button at initialization time and use this property to retrieve it later.
*/
@property (nonatomic, copy, readonly) CPTextButton *primaryAction;
/**
- The secondary action button, or @c nil if excluded.
- */
+ An optional action button to display in the panel.
+
+ Specify this button at initialization time and use this property to retrieve it later.
+*/
@property (nonatomic, copy, readonly, nullable) CPTextButton *secondaryAction;
- (instancetype)init NS_UNAVAILABLE;
diff -ruN /Applications/Xcode_27.1.0.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/CarPlay.framework/Headers/CPPanelItem.h /Applications/Xcode_27.2.0-beta3.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/CarPlay.framework/Headers/CPPanelItem.h
--- /Applications/Xcode_27.1.0.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/CarPlay.framework/Headers/CPPanelItem.h 2026-08-16 03:00:39
+++ /Applications/Xcode_27.2.0-beta3.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/CarPlay.framework/Headers/CPPanelItem.h 2026-10-04 06:29:11
@@ -13,34 +13,61 @@
NS_ASSUME_NONNULL_BEGIN
/**
- @c CPPanelItem is the base class for all items that can be displayed within a panel section.
- Subclasses represent items specific to a particular template context (e.g., @c CPMapPanelItem for map templates).
+ A type that provides the common behaviors for items you display in a section of a panel.
+
+ The `CPPanelItem` type defines the default behaviors for content you display in a panel. You don’t create
+ this type directly or use it to configure the contents of your panel. Instead, instantiate one of the defined subclasses
+ based on the type of panel you’re configuring. For example, create ``CPMapPanelItem`` objects when configuring
+ the content for a ``CPMapPanel`` type.
*/
API_AVAILABLE(ios(27.0)) API_UNAVAILABLE(tvos) API_UNAVAILABLE(macos, watchos)
@interface CPPanelItem : NSObject <NSSecureCoding>
/**
- Whether the item is interactable. Defaults to @c YES.
+ A Boolean value that indicates whether the item supports interactions.
+
+ When the value of this property is `true`, the item is enabled and supports interactions. Set the value to
+ `false` to disable interactions. The default value of this property is `true`.
*/
@property (nonatomic, getter=isEnabled) BOOL enabled;
/**
- When @c NO, the bottom separator line below this item is not drawn. Defaults to @c YES.
+ A Boolean value that indicates whether a separator line appears at the bottom edge of the item.
+
+ When the value of this property is `true`, CarPlay draws a line along the bottom edge of the item to separate it
+ from the next item. Set this property to `false` if you don't want to draw the separator. The default value of this
+ property is `true`.
+
+ When drawing the last section in the map panel, the system doesn't draw a separator line, even if this property
+ is `true`.
*/
@property (nonatomic) BOOL showsBottomSeparator;
/**
- Any custom user info related to this item.
+ Custom information you want to store with the item.
+
+ Store any app-specific data for the item in this property. For example, you might store a dictionary of keys and values.
+ The item maintains a strong reference to the object you specify.
*/
@property (nullable, nonatomic, strong) id userInfo;
/**
- Initializes a panel item wrapping a @c CPListItem.
+ Initialize the item using a list item.
+
+ - Parameters:
+ - listItem: The list item with the information to display. The ``CPListItem`` type supports primary and
+ secondary text and images.
+ - Returns: A panel item configured with the specified list item.
*/
- (instancetype)initWithListItem:(CPListItem *)listItem;
/**
- Initializes a panel item wrapping an array of @c CPGridButton objects.
+ Initialize the item using one or more grid buttons.
+
+ - Parameters:
+ - gridButtons: The grid buttons to display in the item. Specify the buttons in the order you want them to appear.
+ Include no more than four grid buttons in the array.
+ - Returns: A panel item configured with the specified grid buttons.
*/
- (instancetype)initWithGridButtons:(NSArray<CPGridButton *> *)gridButtons;