iPadOS is the operating system for iPad.

Posts under iPadOS tag

145 Posts

Post

Replies

Boosts

Views

Activity

Extending the display on my iPad 11th gen (2025) on iPadOS 26 beta 3
Hi! I am very new to the apple ecosystem. I saw a lot of comments online about how Stage Manager enabled iPads have access to extending the screen to an external display, and that was what hyped me about this beta. Unfortunately, while i do have Stage Manager now, the display is still unwilling to be extended. Is that a feature that’s planned to be included in the OS? Or am i just out of luck? The ipad is one of the most capable devices i have so i was kind of hoping it would get the feature. It has an A11 chip.
0
0
154
Aug ’25
UIMainMenuSystem - disable elements
Hi, I am trying to implement the UIMainMenuSystem for showing the menu bar in my iPad app in iOS26. I would like to be able to disable some elements when a particular UIViewController is displayed on the screen, and I can't figure out the best way to do this. I tried overriding the 'validateCommand' method in my view controller, but it doesn't seem to invoke the validation for menu items that are in the main menu. Any tips on how to do this?
Topic: UI Frameworks SubTopic: UIKit Tags:
1
0
143
Aug ’25
iPadOS 26 Menu Bar - Copy / Paste
How to Support Menu Bar Copy/Paste/Cut/Delete Commands on iPadOS with SwiftUI? (Xcode 26 beta 4, iPadOS 26 beta 4) We’re working on adding menu bar support to our SwiftUI app on iPadOS, aiming to provide a more consistent and productive experience across platforms. However, we’ve encountered a challenge when trying to handle standard editing commands like Copy, Cut, Paste, and Delete from the menu bar: On iPadOS, SwiftUI modifiers such as onCopyCommand, onCutCommand, onPasteCommand, and onDeleteCommand appear to be unavailable. Additionally, since we can’t hide or override the default app menus, we’re unsure how to hook into or replace their behavior effectively. Question: What’s the recommended way to support standard editing actions like copy/paste via the menu bar in SwiftUI on iPadOS? Are there any workarounds or APIs we might have overlooked? Any guidance or best practices would be greatly appreciated! Feedback ID: FB18792279
1
0
144
Aug ’25
iPadOS Floating Tab Bar Items (unselected) use Black Text - Unreadable with App Black Background (Dark Mode): UIKit App
Reference Feedback FB19152594 Occurs with my 3rd Party UIKit App called "Lifeorities". Latest occurrence was 7/27/25 at 13:49 pm. Launch app (actual device running iPadOS 26 or iPadOS 26 simulator) Initial screen displays view content and floating tab bar at top of screen (both portrait orientation and landscape). Floating tab bar items respond to liquid glass effect (but liquid glass appearance of the whole tab bar doesn't comply with new glass pill shaped tab bar area). Selected tab bar item obeys selected app designated color (assets). Unselected tab bar items are using black text which is unreadable on app background which used dark mode as default (as intended). Selecting another tab bar item shows the liquid glass effect as you navigate to the new tab bar item and shows the app designated color (assets). Previous tab bar item that was selected, now is unselected and shows black text. NOTE: iOS tab bar items work fine (show white foreground color as desired for unselected tab bar items).
0
1
184
Aug ’25
iPadOS 26 Menu Bar - Hiding Unused Menu Items
How to Hide Unused Menu Items on iPadOS Menu Bar in SwiftUI? (Xcode 26 beta 4, iPadOS 26 beta 4) We’re working on adding menu bar support to our SwiftUI app on iPadOS, aiming to provide a more consistent and productive experience across platforms. We’d like to hide system-provided menu items that aren’t relevant to our app, such as: Open… Select All Customize Toolbar… New Window, Show All Windows, Open Windows, etc. Is there a way to control which default items appear in the menu bar? Feedback ID: FB18792279
0
0
180
Aug ’25
iPadOS 26 Menu Bar - Undo / Redo
How to Enable or Customize Undo/Redo Menu Items on iPadOS Menu Bar in SwiftUI? (Xcode 26 beta 4, iPadOS 26 beta 4) We’re working on adding menu bar support to our SwiftUI app on iPadOS, aiming to provide a more consistent and productive experience across platforms. Our app is a unified iPad/macOS app that uses UndoManager to support undo/redo operations. However, we’ve run into the following issues: On macOS, undo and redo work as expected via the menu bar. On iPadOS, the Undo and Redo menu items are always disabled, even though the functionality works within the app. We also explored the possibility of hiding the system-generated Undo/Redo menu items so we could provide custom implementations—but couldn’t find a way to remove or override them. Question: Is there a recommended approach to enable or customize the Undo/Redo menu bar items on iPadOS using SwiftUI? Any suggestions or insights would be greatly appreciated! Feedback ID: FB18792279
0
1
149
Aug ’25
NavigationSplitView content column renders list in plain style – even on iPhone
Hi everyone, I’m building an iOS app that originally targeted iPhone using NavigationStack. Now I’m adapting it for iPad and switched to using NavigationSplitView to support a three-column layout. The structure looks like this: NavigationSplitView { A // Sidebar } content: { B // Middle column – this shows a list } detail: { C // Detail view } The issue is with the list shown in view B (the content column). It appears completely unstyled, as if it’s using .listStyle(.plain) — with no background material, and a very flat look. I can understand that this might be intentional on iPad to visually distinguish the three columns. However, the problem is that this same unstyled list also appears on iPhone, even though iPhone only shows a single column view at a time! I tried explicitly setting .listStyle(.insetGrouped) or .listStyle(.grouped) on the list in view B, but it makes no difference. When I go back to NavigationStack, the list in B is styled properly, just as expected — but then I lose the enhanced iPad layout. What I’m looking for: I’d like to keep using NavigationSplitView, but I want the list in the content column (view B) to use the default iOS list styling, at least on iPhone. Is there any way to achieve this? Thanks!
0
0
100
Aug ’25
NavigationSplitView content column renders list in plain style – even on iPhone
Hi everyone, I’m building an iOS app that originally targeted iPhone using NavigationStack. Now I’m adapting it for iPad and switched to using NavigationSplitView to support a three-column layout. The structure looks like this: NavigationSplitView { A // Sidebar } content: { B // Middle column – this shows a list } detail: { C // Detail view } The issue is with the list shown in view B (the content column). It appears completely unstyled, as if it’s using .listStyle(.plain) — with no background material, no grouped sections, and a very flat look. I can understand that this might be intentional on iPad to visually distinguish the three columns. However, the problem is that this same unstyled list also appears on iPhone, even though iPhone only shows a single column view at a time! I tried explicitly setting .listStyle(.insetGrouped) or .listStyle(.grouped) on the list in view B, but it makes no difference. When I go back to NavigationStack, the list in B is styled properly, just as expected — but then I lose the enhanced iPad layout. What I’m looking for: I’d like to keep using NavigationSplitView, but I want the list in the content column (view B) to use the default iOS list styling, at least on iPhone. Is there any way to achieve this? Thanks!
0
0
110
Aug ’25
Dragging window on iPad from near the top
By default, a window on iPadOS 26 can be dragged by touching and dragging the top ~30 points of that window. If the window's root view controller is a UINavigationController with a navigation bar, the window can be dragged by touching and dragging anywhere in that navigation bar. In Apple Calendar, I can drag a window anywhere above the grid of weeks and days. I have an app with a custom navigation controller. My navigation controller is not a subclass of UINavigationController. How can I define what portion of the window should let the user drag that window across the screen on iPad?
Topic: UI Frameworks SubTopic: UIKit Tags:
2
0
201
Aug ’25
[UIViewController willMoveToParentViewController:] provides an incorrect navStack when popping a view controller in iPadOS 18.2
The Apple documentation for [UIViewController willMoveToParentViewController:] states, Called just before the view controller is added or removed from a container view controller. Hence, the view controller being popped should appear at the top of the navStack when willMoveToParentViewController: is called. In iPadOS 16 and 17 the view controller being popped appears at the top of the navStack when willMoveToParentViewController: is called. In iPadOS 18 the view controller being popped has already been (incorrectly) removed from the navStack. We confirmed this bug using iPadOS 18.2 as well as 18.0. Our app relies upon the contents of the navStack within willMoveToParentViewController: to track the user's location within a folder hierarchy. Our app works smoothly on iPadOS 16 and 17. Conversely, our customers running iPadOS 18 have lost client data and corrupted their data folders as a result of this bug! These customers are angry -- not surprisingly, some have asked for refunds and submitted negative app reviews. Why doesn't willMoveToParentViewController: provide the correct navStack in iPadOS 18.2?
2
0
753
Aug ’25
Three dots button overlaps content
I’m working on an old iPad app with a concept that only works in landscape mode. The app’s content is not dynamic and can’t be rearranged depending on the window size. To ensure a good user experience, I set the UIRequiresFullScreen key to true in the Info.plist. Despite this, it’s still possible in iPadOS 26 to resize an app that requires fullscreen. When this happens, the three-dot button overlaps the content, and elements placed in the top-left corner become hard to access. Is there a way to detect when an app is resized and/or when the three-dot button overlaps the app? The UIScreen / UIScene or UIWindow bounds don’t seem to change when UIRequiresFullScreen is set to true. Also, UIScene.isFullscreen always returns false.
1
0
223
Jul ’25
How to get full raw data of barcode using AVFoundation framework
I am creating a barcode reader using the AVfoundation framework for iOS and IPadOS. The read result goes into payloadstringvalue, but I want to check the control characters contained in the symbol, so I am using the raw data of the description, which is a property of NSObjectProtocol inherited by VNBarcodeObservation. However, I noticed that if the length set in the raw data exceeds 26, some of the raw data in the description is omitted. So my question is, is it possible to set it so that all the raw data in the description is written out without omitting any raw data? If so, could you please tell me how to set this up? Also, if you know of any other way to extract the raw barcode data, I would appreciate it if you could let me know. Thank you.
1
0
730
Jul ’25
4 or 5 Finger Gestures on iPadOS 26
I disable 4 or 5 Finger Gestures on Settings.app > Multi-tasking and Gestures. But in the third-party apps, 4-5 finger touches are sometimes immediately cancelled. Especially, 4-5 finger swipe gesture. I filed this issue to FB19226717. I develop Piano instrument app. 4 or 5 finger touches are required for that kind of apps. Please fix this, Apple.
0
0
217
Jul ’25
OS 26 with CNContactViewController issue
when using CNContactViewController to present a contact detail info, the system CNContactViewController appear some UI issues. On iOS 26, the Poster avatar overlaps with the title "Edit device contact" On iPadOS26 with device(not simulator), when click 'Add photo', the CNContactViewController will auto dismiss, and the console output some error log: below are the sample code: AppDelegate.swift: import UIKit @main class AppDelegate: UIResponder, UIApplicationDelegate { let window: UIWindow = UIWindow() func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool { let vc = SplitViewController(primary: TabBarViewController(), secondary: ViewController()) window.rootViewController = vc window.makeKeyAndVisible() return true } } SplitViewController.swift: import UIKit class SplitViewController: UISplitViewController { init(primary: UIViewController, secondary: UIViewController) { super.init(nibName: nil, bundle: nil) preferredDisplayMode = .oneBesideSecondary presentsWithGesture = false delegate = self viewControllers = [primary, secondary] } required init?(coder: NSCoder) { fatalError("init(coder:) has not been implemented") } override func viewDidLoad() { super.viewDidLoad() } } extension SplitViewController: UISplitViewControllerDelegate { } TabBarViewController.swift: import UIKit class BaseViewController: UIViewController { override func viewDidLoad() { super.viewDidLoad() } } class HomeViewController: BaseViewController { override func viewDidLoad() { super.viewDidLoad() view.backgroundColor = .red navigationItem.title = "Home" tabBarItem = UITabBarItem(title: "Home", image: UIImage(systemName: "house"), tag: 0) } } class TabBarViewController: UITabBarController { override func viewDidLoad() { super.viewDidLoad() let homeVC = HomeViewController() let homeNav = UINavigationController(rootViewController: homeVC) viewControllers = [homeNav] ContactManager.shared.getAllContactIdentifiers() } } ViewController.swift: import UIKit import Contacts import ContactsUI class ViewController: UIViewController { override func viewDidLoad() { super.viewDidLoad() view.backgroundColor = .systemPink let button = UIButton(frame: .zero) button.backgroundColor = .orange button.setTitle("show contact", for: .normal) button.addTarget(self, action: #selector(showContactInfo), for: .touchUpInside) button.translatesAutoresizingMaskIntoConstraints = false view.addSubview(button) button.widthAnchor.constraint(equalToConstant: 200).isActive = true button.heightAnchor.constraint(equalToConstant: 60).isActive = true button.centerXAnchor.constraint(equalTo: view.centerXAnchor).isActive = true button.centerYAnchor.constraint(equalTo: view.centerYAnchor).isActive = true } @objc private func showContactInfo() { print("showContactInfo") let identifier = ContactManager.shared.identifiers[0] let currentContact = try? CNContactStore().unifiedContact(withIdentifier: identifier, keysToFetch: [CNContactViewController.descriptorForRequiredKeys()]) guard let contact: CNMutableContact = currentContact?.mutableCopy() as? CNMutableContact else { return } let vc = CNContactViewController(forNewContact: contact) vc.delegate = self vc.title = "Edit Device Contact" vc.allowsActions = false vc.contactStore = CNContactStore() let navigationVC: UINavigationController = UINavigationController(rootViewController: vc) let appDelegate = UIApplication.shared.delegate as? AppDelegate appDelegate?.window.rootViewController?.present(navigationVC, animated: true, completion: nil) } } extension ViewController: CNContactViewControllerDelegate { public func contactViewController(_ viewController: CNContactViewController, didCompleteWith contact: CNContact?) { viewController.dismiss(animated: true, completion: nil) } }
1
0
340
Jul ’25
Autofill Extension can't find bundle while the main app can
I have a Swift Package, it's added to both the main app and the autofill extension. The main app is an iOS app that run directly on my mac from Xcode. I use this extension to access the bundle import Foundation import OSLog class CurrentBundleFinder {} extension Foundation.Bundle { static let myModule: Bundle = { /* The name of your local package, prepended by "LocalPackages_" */ let bundleName = "DesignSystem_DesignSystem" let logger = Logger(subsystem: "DesignSystem", category: "Bundle") logger.error("Searching for bundle: \(bundleName)") let candidates = [ /* Bundle should be present here when the package is linked into an App. */ Bundle.main.resourceURL, /* Bundle should be present here when the package is linked into a framework. */ Bundle(for: CurrentBundleFinder.self).resourceURL, /* For command-line tools. */ Bundle.main.bundleURL, /* Bundle should be present here when running previews from a different package (this is the path to "…/Debug-iphonesimulator/"). */ Bundle(for: CurrentBundleFinder.self).resourceURL?.deletingLastPathComponent().deletingLastPathComponent(), /* For app extensions - look in parent app bundle */ Bundle.main.bundleURL.deletingLastPathComponent().deletingLastPathComponent(), ] logger.error("all bundle: \(candidates, privacy: .public)") for (index, candidate) in candidates.enumerated() { logger.error("Checking candidate \(index): \(candidate?.absoluteString ?? "nil", privacy: .public)") let bundlePath = candidate?.appendingPathComponent(bundleName + ".bundle") logger.error("Bundle path: \(bundlePath?.absoluteString ?? "nil", privacy: .public)") if let bundle = bundlePath.flatMap(Bundle.init(url:)) { logger.error("Successfully found bundle at: \(bundlePath?.absoluteString ?? "unknown", privacy: .public)") return bundle } } logger.error("Unable to find bundle named \(bundleName)") fatalError("unable to find bundle named \(bundleName)") }() } Bellow is the log from the main app and the autofill extension log.txt I have check that /private/var/folders/cb/fctmx0_x3_dbxy_9wnm7g0s40000gn/X/1CC84EBB-DAC0-5120-9346-5EFBC8691CF1/d/Wrapper/Proton Pass.app/PlugIns/AutoFill.appex/DesignSystem_DesignSystem.bundle exist in the file system, but the autofill extension is unable to create a bundle from that
1
0
181
Jul ’25
Apple Pencil Pro not staying connected in iPadOS26 beta
I have a new M4 iPad Air and a brand new Apple Pencil Pro. It was working well until I installed iPadOS 26.0 (23A5297m) beta. Now, when using GoodNotes to write the Pencil functions for about 6-8 seconds and then disconnects for 2-3 seconds and then reconnects. You can imagine how disruptive this is. It does the same thing trying to highlight in the Kindle app, so I think it is an iOS issue. As I write this, I am discovering that the Pencil is not wanting to stay connected at all despite showing up in the list of Bluetooth devices and connecting temporarily. I've tried forgetting and reconnecting the Pencil several times. It is charged to 100%, and I receive the alert that the iPad detects the Pencil. Is anyone else having this issue? Do I need to assume this is being addressed?
2
0
454
Jul ’25
Feature Request: Dual Apple Pencil Pro Use or Charging Dock Support
Hi everyone 👋 I’ve been using the Apple Pencil Pro with my iPad Pro M4 and absolutely love it — the squeeze gesture, rotation, and haptics are amazing for creative work. But I’ve run into a little roadblock… Right now, only one Pencil Pro can be paired at a time. So while one is charging, you can’t use another as a backup without unpairing and re-pairing, which interrupts the workflow. I’d really love to see one of two things: The ability to use one Pencil while another charges or An official external charger (or support for third-party ones) Personally, I’d happily buy both a second Pencil and a charger if this became possible. I’ve even chatted with other creatives who feel the same — it would make a huge difference for long projects or working on the go. Just wanted to share this idea and see if anyone else here would like this too. Thanks for reading!
1
0
482
Jul ’25
iPadOS 26 TabBar text color can't be changed
Hello, I have been trying for some time to change the color of native UITabBar in UITabBarController through UITabBarAppearance, but nothing works and the text is still black in the Xcode Beta 3 on iPadOS 26 while it works correctly in the previous OS versions. Here is the code: let color = UIColor.white let stackedAppearance = UITabBarItemAppearance() stackedAppearance.normal.iconColor = color stackedAppearance.normal.titleTextAttributes = [ .foregroundColor: color ] stackedAppearance.selected.iconColor = color stackedAppearance.selected.titleTextAttributes = [ .foregroundColor: color ] let inlineAppearance = UITabBarItemAppearance() inlineAppearance.normal.iconColor = color inlineAppearance.normal.titleTextAttributes = [ .foregroundColor: color ] inlineAppearance.selected.iconColor = color inlineAppearance.selected.titleTextAttributes = [ .foregroundColor: color ] let tabAppearance = UITabBarAppearance() tabAppearance.compactInlineLayoutAppearance = inlineAppearance tabAppearance.inlineLayoutAppearance = inlineAppearance tabAppearance.stackedLayoutAppearance = stackedAppearance UITabBar.appearance().standardAppearance = tabAppearance UITabBar.appearance().scrollEdgeAppearance = tabAppearance
0
5
528
Jul ’25
Extending the display on my iPad 11th gen (2025) on iPadOS 26 beta 3
Hi! I am very new to the apple ecosystem. I saw a lot of comments online about how Stage Manager enabled iPads have access to extending the screen to an external display, and that was what hyped me about this beta. Unfortunately, while i do have Stage Manager now, the display is still unwilling to be extended. Is that a feature that’s planned to be included in the OS? Or am i just out of luck? The ipad is one of the most capable devices i have so i was kind of hoping it would get the feature. It has an A11 chip.
Replies
0
Boosts
0
Views
154
Activity
Aug ’25
UIMainMenuSystem - disable elements
Hi, I am trying to implement the UIMainMenuSystem for showing the menu bar in my iPad app in iOS26. I would like to be able to disable some elements when a particular UIViewController is displayed on the screen, and I can't figure out the best way to do this. I tried overriding the 'validateCommand' method in my view controller, but it doesn't seem to invoke the validation for menu items that are in the main menu. Any tips on how to do this?
Topic: UI Frameworks SubTopic: UIKit Tags:
Replies
1
Boosts
0
Views
143
Activity
Aug ’25
Do iPhones and iPads support Bluetooth 5.x Long Range, Wi-Fi Neighbor Awareness Networking (Wi-Fi Aware), and Wi-Fi Beacons?
Does the iPhone or iPad support reception of the following communication standards? If so, please let me know if there is an swift API available. ・Bluetooth 5.x Long Range ・Wi-Fi Neighbor Awareness Networking (Wi-Fi Aware) ・Wi-Fi Beacon
Replies
1
Boosts
1
Views
755
Activity
Aug ’25
iPadOS 26 Menu Bar - Copy / Paste
How to Support Menu Bar Copy/Paste/Cut/Delete Commands on iPadOS with SwiftUI? (Xcode 26 beta 4, iPadOS 26 beta 4) We’re working on adding menu bar support to our SwiftUI app on iPadOS, aiming to provide a more consistent and productive experience across platforms. However, we’ve encountered a challenge when trying to handle standard editing commands like Copy, Cut, Paste, and Delete from the menu bar: On iPadOS, SwiftUI modifiers such as onCopyCommand, onCutCommand, onPasteCommand, and onDeleteCommand appear to be unavailable. Additionally, since we can’t hide or override the default app menus, we’re unsure how to hook into or replace their behavior effectively. Question: What’s the recommended way to support standard editing actions like copy/paste via the menu bar in SwiftUI on iPadOS? Are there any workarounds or APIs we might have overlooked? Any guidance or best practices would be greatly appreciated! Feedback ID: FB18792279
Replies
1
Boosts
0
Views
144
Activity
Aug ’25
iPadOS Floating Tab Bar Items (unselected) use Black Text - Unreadable with App Black Background (Dark Mode): UIKit App
Reference Feedback FB19152594 Occurs with my 3rd Party UIKit App called "Lifeorities". Latest occurrence was 7/27/25 at 13:49 pm. Launch app (actual device running iPadOS 26 or iPadOS 26 simulator) Initial screen displays view content and floating tab bar at top of screen (both portrait orientation and landscape). Floating tab bar items respond to liquid glass effect (but liquid glass appearance of the whole tab bar doesn't comply with new glass pill shaped tab bar area). Selected tab bar item obeys selected app designated color (assets). Unselected tab bar items are using black text which is unreadable on app background which used dark mode as default (as intended). Selecting another tab bar item shows the liquid glass effect as you navigate to the new tab bar item and shows the app designated color (assets). Previous tab bar item that was selected, now is unselected and shows black text. NOTE: iOS tab bar items work fine (show white foreground color as desired for unselected tab bar items).
Replies
0
Boosts
1
Views
184
Activity
Aug ’25
iPadOS 26 Menu Bar - Hiding Unused Menu Items
How to Hide Unused Menu Items on iPadOS Menu Bar in SwiftUI? (Xcode 26 beta 4, iPadOS 26 beta 4) We’re working on adding menu bar support to our SwiftUI app on iPadOS, aiming to provide a more consistent and productive experience across platforms. We’d like to hide system-provided menu items that aren’t relevant to our app, such as: Open… Select All Customize Toolbar… New Window, Show All Windows, Open Windows, etc. Is there a way to control which default items appear in the menu bar? Feedback ID: FB18792279
Replies
0
Boosts
0
Views
180
Activity
Aug ’25
iPadOS 26 Menu Bar - Undo / Redo
How to Enable or Customize Undo/Redo Menu Items on iPadOS Menu Bar in SwiftUI? (Xcode 26 beta 4, iPadOS 26 beta 4) We’re working on adding menu bar support to our SwiftUI app on iPadOS, aiming to provide a more consistent and productive experience across platforms. Our app is a unified iPad/macOS app that uses UndoManager to support undo/redo operations. However, we’ve run into the following issues: On macOS, undo and redo work as expected via the menu bar. On iPadOS, the Undo and Redo menu items are always disabled, even though the functionality works within the app. We also explored the possibility of hiding the system-generated Undo/Redo menu items so we could provide custom implementations—but couldn’t find a way to remove or override them. Question: Is there a recommended approach to enable or customize the Undo/Redo menu bar items on iPadOS using SwiftUI? Any suggestions or insights would be greatly appreciated! Feedback ID: FB18792279
Replies
0
Boosts
1
Views
149
Activity
Aug ’25
NavigationSplitView content column renders list in plain style – even on iPhone
Hi everyone, I’m building an iOS app that originally targeted iPhone using NavigationStack. Now I’m adapting it for iPad and switched to using NavigationSplitView to support a three-column layout. The structure looks like this: NavigationSplitView { A // Sidebar } content: { B // Middle column – this shows a list } detail: { C // Detail view } The issue is with the list shown in view B (the content column). It appears completely unstyled, as if it’s using .listStyle(.plain) — with no background material, and a very flat look. I can understand that this might be intentional on iPad to visually distinguish the three columns. However, the problem is that this same unstyled list also appears on iPhone, even though iPhone only shows a single column view at a time! I tried explicitly setting .listStyle(.insetGrouped) or .listStyle(.grouped) on the list in view B, but it makes no difference. When I go back to NavigationStack, the list in B is styled properly, just as expected — but then I lose the enhanced iPad layout. What I’m looking for: I’d like to keep using NavigationSplitView, but I want the list in the content column (view B) to use the default iOS list styling, at least on iPhone. Is there any way to achieve this? Thanks!
Replies
0
Boosts
0
Views
100
Activity
Aug ’25
NavigationSplitView content column renders list in plain style – even on iPhone
Hi everyone, I’m building an iOS app that originally targeted iPhone using NavigationStack. Now I’m adapting it for iPad and switched to using NavigationSplitView to support a three-column layout. The structure looks like this: NavigationSplitView { A // Sidebar } content: { B // Middle column – this shows a list } detail: { C // Detail view } The issue is with the list shown in view B (the content column). It appears completely unstyled, as if it’s using .listStyle(.plain) — with no background material, no grouped sections, and a very flat look. I can understand that this might be intentional on iPad to visually distinguish the three columns. However, the problem is that this same unstyled list also appears on iPhone, even though iPhone only shows a single column view at a time! I tried explicitly setting .listStyle(.insetGrouped) or .listStyle(.grouped) on the list in view B, but it makes no difference. When I go back to NavigationStack, the list in B is styled properly, just as expected — but then I lose the enhanced iPad layout. What I’m looking for: I’d like to keep using NavigationSplitView, but I want the list in the content column (view B) to use the default iOS list styling, at least on iPhone. Is there any way to achieve this? Thanks!
Replies
0
Boosts
0
Views
110
Activity
Aug ’25
Dragging window on iPad from near the top
By default, a window on iPadOS 26 can be dragged by touching and dragging the top ~30 points of that window. If the window's root view controller is a UINavigationController with a navigation bar, the window can be dragged by touching and dragging anywhere in that navigation bar. In Apple Calendar, I can drag a window anywhere above the grid of weeks and days. I have an app with a custom navigation controller. My navigation controller is not a subclass of UINavigationController. How can I define what portion of the window should let the user drag that window across the screen on iPad?
Topic: UI Frameworks SubTopic: UIKit Tags:
Replies
2
Boosts
0
Views
201
Activity
Aug ’25
[UIViewController willMoveToParentViewController:] provides an incorrect navStack when popping a view controller in iPadOS 18.2
The Apple documentation for [UIViewController willMoveToParentViewController:] states, Called just before the view controller is added or removed from a container view controller. Hence, the view controller being popped should appear at the top of the navStack when willMoveToParentViewController: is called. In iPadOS 16 and 17 the view controller being popped appears at the top of the navStack when willMoveToParentViewController: is called. In iPadOS 18 the view controller being popped has already been (incorrectly) removed from the navStack. We confirmed this bug using iPadOS 18.2 as well as 18.0. Our app relies upon the contents of the navStack within willMoveToParentViewController: to track the user's location within a folder hierarchy. Our app works smoothly on iPadOS 16 and 17. Conversely, our customers running iPadOS 18 have lost client data and corrupted their data folders as a result of this bug! These customers are angry -- not surprisingly, some have asked for refunds and submitted negative app reviews. Why doesn't willMoveToParentViewController: provide the correct navStack in iPadOS 18.2?
Replies
2
Boosts
0
Views
753
Activity
Aug ’25
Three dots button overlaps content
I’m working on an old iPad app with a concept that only works in landscape mode. The app’s content is not dynamic and can’t be rearranged depending on the window size. To ensure a good user experience, I set the UIRequiresFullScreen key to true in the Info.plist. Despite this, it’s still possible in iPadOS 26 to resize an app that requires fullscreen. When this happens, the three-dot button overlaps the content, and elements placed in the top-left corner become hard to access. Is there a way to detect when an app is resized and/or when the three-dot button overlaps the app? The UIScreen / UIScene or UIWindow bounds don’t seem to change when UIRequiresFullScreen is set to true. Also, UIScene.isFullscreen always returns false.
Replies
1
Boosts
0
Views
223
Activity
Jul ’25
How to get full raw data of barcode using AVFoundation framework
I am creating a barcode reader using the AVfoundation framework for iOS and IPadOS. The read result goes into payloadstringvalue, but I want to check the control characters contained in the symbol, so I am using the raw data of the description, which is a property of NSObjectProtocol inherited by VNBarcodeObservation. However, I noticed that if the length set in the raw data exceeds 26, some of the raw data in the description is omitted. So my question is, is it possible to set it so that all the raw data in the description is written out without omitting any raw data? If so, could you please tell me how to set this up? Also, if you know of any other way to extract the raw barcode data, I would appreciate it if you could let me know. Thank you.
Replies
1
Boosts
0
Views
730
Activity
Jul ’25
4 or 5 Finger Gestures on iPadOS 26
I disable 4 or 5 Finger Gestures on Settings.app > Multi-tasking and Gestures. But in the third-party apps, 4-5 finger touches are sometimes immediately cancelled. Especially, 4-5 finger swipe gesture. I filed this issue to FB19226717. I develop Piano instrument app. 4 or 5 finger touches are required for that kind of apps. Please fix this, Apple.
Replies
0
Boosts
0
Views
217
Activity
Jul ’25
OS 26 with CNContactViewController issue
when using CNContactViewController to present a contact detail info, the system CNContactViewController appear some UI issues. On iOS 26, the Poster avatar overlaps with the title "Edit device contact" On iPadOS26 with device(not simulator), when click 'Add photo', the CNContactViewController will auto dismiss, and the console output some error log: below are the sample code: AppDelegate.swift: import UIKit @main class AppDelegate: UIResponder, UIApplicationDelegate { let window: UIWindow = UIWindow() func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool { let vc = SplitViewController(primary: TabBarViewController(), secondary: ViewController()) window.rootViewController = vc window.makeKeyAndVisible() return true } } SplitViewController.swift: import UIKit class SplitViewController: UISplitViewController { init(primary: UIViewController, secondary: UIViewController) { super.init(nibName: nil, bundle: nil) preferredDisplayMode = .oneBesideSecondary presentsWithGesture = false delegate = self viewControllers = [primary, secondary] } required init?(coder: NSCoder) { fatalError("init(coder:) has not been implemented") } override func viewDidLoad() { super.viewDidLoad() } } extension SplitViewController: UISplitViewControllerDelegate { } TabBarViewController.swift: import UIKit class BaseViewController: UIViewController { override func viewDidLoad() { super.viewDidLoad() } } class HomeViewController: BaseViewController { override func viewDidLoad() { super.viewDidLoad() view.backgroundColor = .red navigationItem.title = "Home" tabBarItem = UITabBarItem(title: "Home", image: UIImage(systemName: "house"), tag: 0) } } class TabBarViewController: UITabBarController { override func viewDidLoad() { super.viewDidLoad() let homeVC = HomeViewController() let homeNav = UINavigationController(rootViewController: homeVC) viewControllers = [homeNav] ContactManager.shared.getAllContactIdentifiers() } } ViewController.swift: import UIKit import Contacts import ContactsUI class ViewController: UIViewController { override func viewDidLoad() { super.viewDidLoad() view.backgroundColor = .systemPink let button = UIButton(frame: .zero) button.backgroundColor = .orange button.setTitle("show contact", for: .normal) button.addTarget(self, action: #selector(showContactInfo), for: .touchUpInside) button.translatesAutoresizingMaskIntoConstraints = false view.addSubview(button) button.widthAnchor.constraint(equalToConstant: 200).isActive = true button.heightAnchor.constraint(equalToConstant: 60).isActive = true button.centerXAnchor.constraint(equalTo: view.centerXAnchor).isActive = true button.centerYAnchor.constraint(equalTo: view.centerYAnchor).isActive = true } @objc private func showContactInfo() { print("showContactInfo") let identifier = ContactManager.shared.identifiers[0] let currentContact = try? CNContactStore().unifiedContact(withIdentifier: identifier, keysToFetch: [CNContactViewController.descriptorForRequiredKeys()]) guard let contact: CNMutableContact = currentContact?.mutableCopy() as? CNMutableContact else { return } let vc = CNContactViewController(forNewContact: contact) vc.delegate = self vc.title = "Edit Device Contact" vc.allowsActions = false vc.contactStore = CNContactStore() let navigationVC: UINavigationController = UINavigationController(rootViewController: vc) let appDelegate = UIApplication.shared.delegate as? AppDelegate appDelegate?.window.rootViewController?.present(navigationVC, animated: true, completion: nil) } } extension ViewController: CNContactViewControllerDelegate { public func contactViewController(_ viewController: CNContactViewController, didCompleteWith contact: CNContact?) { viewController.dismiss(animated: true, completion: nil) } }
Replies
1
Boosts
0
Views
340
Activity
Jul ’25
Autofill Extension can't find bundle while the main app can
I have a Swift Package, it's added to both the main app and the autofill extension. The main app is an iOS app that run directly on my mac from Xcode. I use this extension to access the bundle import Foundation import OSLog class CurrentBundleFinder {} extension Foundation.Bundle { static let myModule: Bundle = { /* The name of your local package, prepended by "LocalPackages_" */ let bundleName = "DesignSystem_DesignSystem" let logger = Logger(subsystem: "DesignSystem", category: "Bundle") logger.error("Searching for bundle: \(bundleName)") let candidates = [ /* Bundle should be present here when the package is linked into an App. */ Bundle.main.resourceURL, /* Bundle should be present here when the package is linked into a framework. */ Bundle(for: CurrentBundleFinder.self).resourceURL, /* For command-line tools. */ Bundle.main.bundleURL, /* Bundle should be present here when running previews from a different package (this is the path to "…/Debug-iphonesimulator/"). */ Bundle(for: CurrentBundleFinder.self).resourceURL?.deletingLastPathComponent().deletingLastPathComponent(), /* For app extensions - look in parent app bundle */ Bundle.main.bundleURL.deletingLastPathComponent().deletingLastPathComponent(), ] logger.error("all bundle: \(candidates, privacy: .public)") for (index, candidate) in candidates.enumerated() { logger.error("Checking candidate \(index): \(candidate?.absoluteString ?? "nil", privacy: .public)") let bundlePath = candidate?.appendingPathComponent(bundleName + ".bundle") logger.error("Bundle path: \(bundlePath?.absoluteString ?? "nil", privacy: .public)") if let bundle = bundlePath.flatMap(Bundle.init(url:)) { logger.error("Successfully found bundle at: \(bundlePath?.absoluteString ?? "unknown", privacy: .public)") return bundle } } logger.error("Unable to find bundle named \(bundleName)") fatalError("unable to find bundle named \(bundleName)") }() } Bellow is the log from the main app and the autofill extension log.txt I have check that /private/var/folders/cb/fctmx0_x3_dbxy_9wnm7g0s40000gn/X/1CC84EBB-DAC0-5120-9346-5EFBC8691CF1/d/Wrapper/Proton Pass.app/PlugIns/AutoFill.appex/DesignSystem_DesignSystem.bundle exist in the file system, but the autofill extension is unable to create a bundle from that
Replies
1
Boosts
0
Views
181
Activity
Jul ’25
Apple Pencil Pro not staying connected in iPadOS26 beta
I have a new M4 iPad Air and a brand new Apple Pencil Pro. It was working well until I installed iPadOS 26.0 (23A5297m) beta. Now, when using GoodNotes to write the Pencil functions for about 6-8 seconds and then disconnects for 2-3 seconds and then reconnects. You can imagine how disruptive this is. It does the same thing trying to highlight in the Kindle app, so I think it is an iOS issue. As I write this, I am discovering that the Pencil is not wanting to stay connected at all despite showing up in the list of Bluetooth devices and connecting temporarily. I've tried forgetting and reconnecting the Pencil several times. It is charged to 100%, and I receive the alert that the iPad detects the Pencil. Is anyone else having this issue? Do I need to assume this is being addressed?
Replies
2
Boosts
0
Views
454
Activity
Jul ’25
Feature Request: Dual Apple Pencil Pro Use or Charging Dock Support
Hi everyone 👋 I’ve been using the Apple Pencil Pro with my iPad Pro M4 and absolutely love it — the squeeze gesture, rotation, and haptics are amazing for creative work. But I’ve run into a little roadblock… Right now, only one Pencil Pro can be paired at a time. So while one is charging, you can’t use another as a backup without unpairing and re-pairing, which interrupts the workflow. I’d really love to see one of two things: The ability to use one Pencil while another charges or An official external charger (or support for third-party ones) Personally, I’d happily buy both a second Pencil and a charger if this became possible. I’ve even chatted with other creatives who feel the same — it would make a huge difference for long projects or working on the go. Just wanted to share this idea and see if anyone else here would like this too. Thanks for reading!
Replies
1
Boosts
0
Views
482
Activity
Jul ’25
App not opening due to ‘Restrictions’ being enabled
I am using an iPad Pro 11” on iOS 26 dev beta. I try to open 12+ apps and they don’t work. I have tried force restarting the device and checking settings and everything seems to be in order.
Replies
0
Boosts
0
Views
257
Activity
Jul ’25
iPadOS 26 TabBar text color can't be changed
Hello, I have been trying for some time to change the color of native UITabBar in UITabBarController through UITabBarAppearance, but nothing works and the text is still black in the Xcode Beta 3 on iPadOS 26 while it works correctly in the previous OS versions. Here is the code: let color = UIColor.white let stackedAppearance = UITabBarItemAppearance() stackedAppearance.normal.iconColor = color stackedAppearance.normal.titleTextAttributes = [ .foregroundColor: color ] stackedAppearance.selected.iconColor = color stackedAppearance.selected.titleTextAttributes = [ .foregroundColor: color ] let inlineAppearance = UITabBarItemAppearance() inlineAppearance.normal.iconColor = color inlineAppearance.normal.titleTextAttributes = [ .foregroundColor: color ] inlineAppearance.selected.iconColor = color inlineAppearance.selected.titleTextAttributes = [ .foregroundColor: color ] let tabAppearance = UITabBarAppearance() tabAppearance.compactInlineLayoutAppearance = inlineAppearance tabAppearance.inlineLayoutAppearance = inlineAppearance tabAppearance.stackedLayoutAppearance = stackedAppearance UITabBar.appearance().standardAppearance = tabAppearance UITabBar.appearance().scrollEdgeAppearance = tabAppearance
Replies
0
Boosts
5
Views
528
Activity
Jul ’25