Construct and manage graphical, event-driven user interfaces for iOS or tvOS apps using UIKit.

UIKit Documentation

Post

Replies

Boosts

Views

Activity

UIKit Live Preview for Objective-C View Controller?
Now that live previews are available in UIKit (source: https://developer.apple.com/wwdc23/10252) I was wondering how to get a UIViewController from Objective-C. The Swift macro looks like this: #Preview { var controller = SomeViewController() return controller; } Is there a way to get a live preview for UIViewControllers/UIViews written in Objective-C (other than wrapping it as a child view controller in an empty swift view controller)?
4
0
863
Sep ’23
iOS17 xcode13 collectionViewContentSize width returns 0 and displays a blank page
In an APP packaged with xcode13 and running on a mobile phone with iOS17 system, the UICollectionView appears blank. UICollectionView uses a custom UICollectionViewLayout, which overrides the collectionViewContentSize method. The width returned in this method is 0, which will cause cellForItemAtIndexPath not to be called. Setting it to 1 can also display normally.
0
0
451
Sep ’23
App Crashes On Launch in some iphone(iOS 17)
My app keeps getting crashed for the same reason in some iphone(iOS 17) and I need help. Here is the lastExceptionBacktrace. "lastExceptionBacktrace" : [ {"imageOffset":972256,"symbol":"__exceptionPreprocess","symbolLocation":164,"imageIndex":10}, {"imageOffset":179200,"symbol":"objc_exception_throw","symbolLocation":60,"imageIndex":7}, {"imageOffset":1516452,"symbol":"-[NSException initWithCoder:]","symbolLocation":0,"imageIndex":10}, {"imageOffset":195548,"symbol":"CA::Layer::set_position(CA::Vec2 const&, bool)","symbolLocation":168,"imageIndex":19}, {"imageOffset":195340,"symbol":"-[CALayer setPosition:]","symbolLocation":52,"imageIndex":19}, {"imageOffset":195204,"symbol":"-[CALayer setFrame:]","symbolLocation":396,"imageIndex":19}, {"imageOffset":409656,"symbol":"__26-[_UILabelLayer setFrame:]_block_invoke","symbolLocation":56,"imageIndex":12}, {"imageOffset":409388,"symbol":"-[_UILabelLayer _setFrameOrBounds:settingAction:]","symbolLocation":60,"imageIndex":12}, {"imageOffset":426392,"symbol":"-[_UILabelLayer setFrame:]","symbolLocation":104,"imageIndex":12}, {"imageOffset":104744,"symbol":"-[UIView _backing_setFrame:]","symbolLocation":240,"imageIndex":12}, {"imageOffset":97808,"symbol":"-[UIView(Geometry) setFrame:]","symbolLocation":296,"imageIndex":12}, {"imageOffset":106944,"symbol":"-[UILabel setFrame:]","symbolLocation":112,"imageIndex":12}, {"imageOffset":16705216,"symbol":"-[UITableViewHeaderFooterView layoutSubviews]","symbolLocation":220,"imageIndex":12}, {"imageOffset":209368,"symbol":"-[UIView(CALayerDelegate) layoutSublayersOfLayer:]","symbolLocation":1528,"imageIndex":12}, {"imageOffset":424072,"symbol":"CA::Layer::layout_if_needed(CA::Transaction*)","symbolLocation":500,"imageIndex":19}, {"imageOffset":221860,"symbol":"-[UIView(Hierarchy) layoutBelowIfNeeded]","symbolLocation":308,"imageIndex":12}, {"imageOffset":16700796,"symbol":"-[UITableViewHeaderFooterView _sizeThatFits:stripPaddingForAbuttingView:isTopHeader:]","symbolLocation":192,"imageIndex":12}, {"imageOffset":16733416,"symbol":"-[UISectionRowData _headerFooterSizeForSection:inTable:withTitle:detailText:isHeader:stripPaddingForAbuttingView:isTopHeader:]","symbolLocation":680,"imageIndex":12}, {"imageOffset":2595124,"symbol":"-[UISectionRowData refreshWithSection:tableView:tableViewRowData:]","symbolLocation":464,"imageIndex":12}, {"imageOffset":2604748,"symbol":"-[UITableViewRowData rectForFooterInSection:heightCanBeGuessed:]","symbolLocation":104,"imageIndex":12}, {"imageOffset":2604572,"symbol":"-[UITableViewRowData heightForTable]","symbolLocation":52,"imageIndex":12}, {"imageOffset":2599644,"symbol":"-[UITableView _updateContentSizeSkippingContentOffsetAdjustment:]","symbolLocation":168,"imageIndex":12}, {"imageOffset":16599748,"symbol":"-[UITableView _rebuildGeometryForcingRowDataUpdate:skipContentOffsetAdjustment:updateImmediatelyIfPossible:]","symbolLocation":140,"imageIndex":12}, {"imageOffset":16595412,"symbol":"-[UITableView setLayoutMargins:]","symbolLocation":204,"imageIndex":12}, {"imageOffset":16595180,"symbol":"-[UITableView _setDefaultLayoutMargins:]","symbolLocation":52,"imageIndex":12}, {"imageOffset":16595032,"symbol":"-[UITableView didMoveToWindow]","symbolLocation":288,"imageIndex":12}, {"imageOffset":74184,"symbol":"-[UIView(Internal) _didMoveFromWindow:toWindow:]","symbolLocation":1716,"imageIndex":12}, {"imageOffset":1969584,"symbol":"-[UIScrollView _didMoveFromWindow:toWindow:]","symbolLocation":88,"imageIndex":12}, {"imageOffset":73152,"symbol":"-[UIView(Internal) _didMoveFromWindow:toWindow:]","symbolLocation":684,"imageIndex":12}, {"imageOffset":71756,"symbol":"__45-[UIView(Hierarchy) _postMovedFromSuperview:]_block_invoke","symbolLocation":124,"imageIndex":12}, {"imageOffset":71520,"symbol":"-[UIView _postMovedFromSuperview:]","symbolLocation":484,"imageIndex":12}, {"imageOffset":66468,"symbol":"-[UIView(Internal) _addSubview:positioned:relativeTo:]","symbolLocation":2180,"imageIndex":12}, {"imageOffset":555240,"symbol":"-[UIWindow addRootViewControllerViewIfPossible]","symbolLocation":728,"imageIndex":12}, {"imageOffset":1651088,"symbol":"-[UIWindow setRootViewController:]","symbolLocation":364,"imageIndex":12}, {"imageOffset":27056,"imageIndex":2}, {"imageOffset":26016,"imageIndex":2}, {"imageOffset":2179544,"symbol":"-[UIApplication _handleDelegateCallbacksWithOptions:isSuspended:restoreState:]","symbolLocation":320,"imageIndex":12}, ...... {"imageOffset":2433472,"symbol":"-[UIApplicationSceneClientAgent scene:didInitializeWithEvent:completion:]","symbolLocation":288,"imageIndex":12}, {"imageOffset":60072,"symbol":"-[FBSScene _callOutQueue_didCreateWithTransitionContext:completion:]","symbolLocation":324,"imageIndex":9}, {"imageOffset":59716,"symbol":"__92-[FBSWorkspaceScenesClient createSceneWithIdentity:parameters:transitionContext:completion:]_block_invoke.108","symbolLocation":280,"imageIndex":9}, {"imageOffset":54696,"symbol":"-[FBSWorkspace _calloutQueue_executeCalloutFromSource:withBlock:]","symbolLocation":168,"imageIndex":9}, {"imageOffset":103264,"symbol":"__92-[FBSWorkspaceScenesClient createSceneWithIdentity:parameters:transitionContext:completion:]_block_invoke","symbolLocation":352,"imageIndex":9}, {"imageOffset":17152,"symbol":"_dispatch_client_callout","symbolLocation":20,"imageIndex":8}, {"imageOffset":32072,"symbol":"_dispatch_block_invoke_direct","symbolLocation":284,"imageIndex":8}, {"imageOffset":39404,"symbol":"FBSSERIALQUEUE_IS_CALLING_OUT_TO_A_BLOCK","symbolLocation":52,"imageIndex":9}, {"imageOffset":39276,"symbol":"-[FBSMainRunLoopSerialQueue _targetQueue_performNextIfPossible]","symbolLocation":240,"imageIndex":9}, {"imageOffset":38980,"symbol":"-[FBSMainRunLoopSerialQueue _performNextFromRunLoopSource]","symbolLocation":28,"imageIndex":9}, {"imageOffset":228044,"symbol":"CFRUNLOOP_IS_CALLING_OUT_TO_A_SOURCE0_PERFORM_FUNCTION","symbolLocation":28,"imageIndex":10}, {"imageOffset":224584,"symbol":"__CFRunLoopDoSource0","symbolLocation":176,"imageIndex":10}, {"imageOffset":218460,"symbol":"__CFRunLoopDoSources0","symbolLocation":340,"imageIndex":10}, {"imageOffset":213560,"symbol":"__CFRunLoopRun","symbolLocation":828,"imageIndex":10}, {"imageOffset":212504,"symbol":"CFRunLoopRunSpecific","symbolLocation":608,"imageIndex":10}, {"imageOffset":13804,"symbol":"GSEventRunModal","symbolLocation":164,"imageIndex":11}, {"imageOffset":2290512,"symbol":"-[UIApplication _run]","symbolLocation":888,"imageIndex":12}, {"imageOffset":2288012,"symbol":"UIApplicationMain","symbolLocation":340,"imageIndex":12}, {"imageOffset":24608,"imageIndex":2}, {"imageOffset":23876,"symbol":"start","symbolLocation":2104,"imageIndex":13} ],
6
0
1.8k
Sep ’23
UICollectionViewDelegateFlowLayout, setting minimumLineSpacingForSectionAt to zero does not render the UICollectionView in iOS17.
I recently upgraded Xcode15 and launched the app with iOS 17 simulator, i found that my custom UICollectionView is not redering. After analyzing I found that to fix this I have to make MinimumLineSpacingForSectionAt non-zero. But I want to keep minimumLineSpacingForSectionAt as zero in my app with which my UICollectionView was working fine in iOS16 and previous iOS versions. please suggest to reson behind this behaviour and share the solution.
0
1
185
Sep ’23
External Display Support in IOS App
Body: Hello, I am facing a challenging issue with my SwiftUI iOS application, which is designed to work on an iPad and connect to an external display. The app, called "EasyJoin," is intended to provide a single-touch interface for joining conference meetings. It pulls events from a calendar and provides a "Join" button to connect to the meeting. The Goal: Mirror the app on an external display in its native aspect ratio. Also mirror any other client applications launched from EasyJoin (such as Google Meet, Teams, WebEx, Zoom) to the external display in its native aspect ratio. The Issue: While I have been successful in displaying the app on the external display, the iPad screen goes black as soon as the external display is connected. I need both the iPad and the external display to show the app simultaneously, each in their native aspect ratios. What I've Tried: Created separate UIWindow objects for the internal and external displays. Used NotificationCenter to listen for UIScreen.didConnectNotification and UIScreen.didDisconnectNotification. Tried managing windows through both AppDelegate and SceneDelegate. Explicitly set windowLevel for both internal and external windows. Despite these efforts, the issue persists. The external display works as expected, but the iPad screen remains black. Here is a snippet of my SceneDelegate.swift: // ... (Code for setting up UIWindow and listening for screen connect/disconnect) @objc func screenDidConnect(notification: Notification) { // ... (Code for setting up external UIWindow) externalWindow?.isHidden = false } @objc func screenDidDisconnect(notification: Notification) { externalWindow?.isHidden = true externalWindow = nil } I would appreciate any guidance or suggestions to resolve this issue. Thank you! Feel free to copy and paste this into a new post on the Apple Developer Forums. Hopefully, you'll get some specialized assistance that can help resolve the issue.
4
0
1.3k
Sep ’23
Live Preview Not Working for UIKit Unless I raise Deployment Target to iOS 17
In Xcode 15 Live Previews are available for UIKit view controllers and views. However I noticed they do not work if the deployment target is < 17.0. If I try to make a live preview for a view controller like so: #Preview { let someVC = ViewController() return someVC } It doesn't load. The error is described below: == PREVIEW UPDATE ERROR: CompileDylibError: Failed to build ASwiftViewController.swift Compiling failed: module 'SwiftUI' has no member named 'VStack' If I raise the deployment target to iOS 17 it starts working.
3
2
2k
Sep ’23
Mac Catalyst with Live Previews: Any Way to Change the Size the View Controller Preview is Rendered at?
I have a Mac Catalyst app. When using "Live Previews" in Xcode 15 for a view controller of mine the live preview renders at a gigantic size in the Preview. This view controller is only ever presented as a "sheet" on Mac at a fixed size so ideally I'd like to be able to specify the "window size" for the preview environment. Is there a way to do this? Thanks in advance.
0
0
329
Sep ’23
Mac Catalyst Modally Presented View Controllers Not Working in Xcode Live Previews
I have a UIViewController subclass I'm using in Mac Catalyst. This view controller is only ever presented as a sheet. When I try to make a live preview for it the preview is displayed a gigantic size (not the sheet's actual size at runtime). I made a separate thread about this: https://developer.apple.com/forums/thread/738641 In order to be able to preview the view controller for Mac Catalyst at the desired size I figured I'd present it on another view controller. #Preview { let wrapperVC = WrapperViewController() return wrapperVC } //In WrapperViewController override func viewDidAppear(_ animated: Bool) { super.viewDidAppear(animated) if (firstViewDidAppear) { firstViewDidAppear = false view.backgroundColor = UIColor.yellow let realVC = ActualVCIWantToPreview() realVC.modalPresentationStyle = .formSheet present(realVC, animated: false); } } But that's not working. However if I change the device from Mac to iPad it does work so it appears modal presentations aren't working for Live Previews on Mac Catalyst (unless I'm doing something wrong but Xcode is reporting no errors it just isn't showing my presented view controller).
1
0
470
Sep ’23
iOS17, _UIGraphicsBeginImageContextWithOptions crash, how should solve?
Incident Identifier: C7E20EA3-7315-404A-83D5-8DBD20F8406B Hardware Model: iPad13,1 Process: 月儿记账 [352] Path: /private/var/containers/Bundle/Application/1F4F62A3-A990-4094-9982-DB0CFBB82662/月儿记账.app/月儿记账 Identifier: top.bytearts.money Version: 1.6.0 (000194) AppStoreTools: 15A240a AppVariant: 1:iPad13,1:15 Code Type: ARM-64 (Native) Role: Foreground Parent Process: launchd [1] Coalition: top.bytearts.money [491] Date/Time: 2023-09-28 00:34:09.5371 +0800 Launch Time: 2023-09-28 00:34:03.1161 +0800 OS Version: iPhone OS 17.0 (21A329) Release Type: User Report Version: 104 Exception Type: EXC_CRASH (SIGABRT) Exception Codes: 0x0000000000000000, 0x0000000000000000 Termination Reason: SIGNAL 6 Abort trap: 6 Terminating Process: 月儿记账 [352] Triggered by Thread: 0 Last Exception Backtrace: 0 CoreFoundation 0x19862a5e0 __exceptionPreprocess + 164 (NSException.m:249) 1 libobjc.A.dylib 0x1909abc00 objc_exception_throw + 60 (objc-exception.mm:356) 2 Foundation 0x197b944d4 -[NSAssertionHandler handleFailureInFunction:file:lineNumber:description:] + 172 (NSException.m:261) 3 UIKitCore 0x19a844904 _UIGraphicsBeginImageContextWithOptions + 568 (UIGraphics.m:407) 4 UIKitCore 0x19a8428d0 -[UIImageView(Pretiling) _updatePretiledImageCacheForImage:] + 812 (UIImageView_Pretiling.m:171) 5 UIKitCore 0x19a7920b0 -[UIImageView _updateImageViewForOldImage:newImage:] + 496 (UIImageView.m:3604) 6 UIKitCore 0x19a75c0fc -[UIImageView _resolveImagesWithPreviouslyDisplayedImage:] + 836 (UIImageView.m:3409) 7 UIKitCore 0x19a75bd74 -[UIImageView _setImage:invalidatingPendingSymbolTransitions:] + 280 (UIImageView.m:1379) 8 UIKitCore 0x19a7c1ab0 -[UIButtonLegacyVisualProvider _updateBackgroundImageView] + 124 (UIButtonLegacyVisualProvider.m:1795) 9 UIKitCore 0x19a7c02c4 -[UIButtonLegacyVisualProvider layoutSubviews] + 100 (UIButtonLegacyVisualProvider.m:2379) 10 UIKitCore 0x19a7c021c -[UIButton layoutSubviews] + 40 (UIButton.m:2811) 11 UIKitCore 0x19a7831d8 -[UIView(CALayerDelegate) layoutSublayersOfLayer:] + 1528 (UIView.m:19754) 12 QuartzCore 0x199b9b888 CA::Layer::layout_if_needed(CA::Transaction*) + 500 (CALayer.mm:10783) 13 QuartzCore 0x199b9b410 CA::Layer::layout_and_display_if_needed(CA::Transaction*) + 144 (CALayer.mm:2594) 14 QuartzCore 0x199ba194c CA::Context::commit_transaction(CA::Transaction*, double, double*) + 464 (CAContextInternal.mm:2792) 15 QuartzCore 0x199b9ac3c CA::Transaction::commit() + 648 (CATransactionInternal.mm:432) 16 QuartzCore 0x199b9a8e4 CA::Transaction::flush_as_runloop_observer(bool) + 88 (CATransactionInternal.mm:942) 17 CoreFoundation 0x1985731dc __CFRUNLOOP_IS_CALLING_OUT_TO_AN_OBSERVER_CALLBACK_FUNCTION__ + 36 (CFRunLoop.c:1789) 18 CoreFoundation 0x198571be4 __CFRunLoopDoObservers + 548 (CFRunLoop.c:1902) 19 CoreFoundation 0x198571300 __CFRunLoopRun + 1028 (CFRunLoop.c:2983) 20 CoreFoundation 0x198570e18 CFRunLoopRunSpecific + 608 (CFRunLoop.c:3420) 21 GraphicsServices 0x1db02d5ec GSEventRunModal + 164 (GSEvent.c:2196) 22 UIKitCore 0x19a97f350 -[UIApplication _run] + 888 (UIApplication.m:3690) 23 UIKitCore 0x19a97e98c UIApplicationMain + 340 (UIApplication.m:5275) 24 月儿记账 0x10067cfcc main + 68 (main.m:18) 25 dyld 0x1bad53d44 start + 2104 (dyldMain.cpp:1269)
3
1
741
Sep ’23
Xcode 15 / IOS 17 Breaks compact Landscape tab bar
**Run this code on IOS 16 or below, or build with XCode 14, and when you rotate your phone landscape you get a Tab Bar with with labels below the images rather than the default of labels to the left ** extension UITabBar { // the Master view controller shows the UITabBarItem icon next to the text override open var traitCollection: UITraitCollection { if UIDevice.current.userInterfaceIdiom == .pad { return UITraitCollection(horizontalSizeClass: .compact) } // return super.traitCollection if UIDevice.current.userInterfaceIdiom == .phone { return UITraitCollection(horizontalSizeClass: .compact) } return super.traitCollection } } _**_**Build with Xcode 15 and run on IOS 17 Iphone and you get the following error message **_**_ Thread 1: "A trait environment returned a trait collection with unspecified values for traits that are not allowed to be unspecified. This is a serious application bug and will cause undefined behavior. This issue may be caused by your class overriding the traitCollection property getter, which is not supported. Make sure to use the appropriate API if you are trying to override traits. Trait Environment: <UITabBarSwappableImageView: 0x103847660; frame = (0 0; 0 0); opaque = NO; userInteractionEnabled = NO; image = <UIImage:0x281372c70 CGImage anonymous; (34 38)@3>; layer = <CALayer: 0x282135ea0>>; Trait Collection: <UITraitCollection: 0x10386d230; HorizontalSizeClass = Compact, PreferredContentSizeCategory = L>" _____Serious bug? more than 100,000 users over 4 years and never had an issue with this code until now. This is preventing us from building with Xcode 15 and affecting our production. It was suggested we try this, it prevents the crash but does not work.** ____**_ ` ` if UIDevice.current.userInterfaceIdiom == .phone { if #available(iOS 17.0, *) { return UITraitCollection(traitsFrom: [super.traitCollection, UITraitCollection(horizontalSizeClass: .compact)]) } else { return UITraitCollection(horizontalSizeClass: .compact) } } `
6
3
2.5k
Oct ’23
Collection View Compositional Layout: uniformAcrossSiblingsWithEstimate Not Working
New in iOS 17 is NSCollectionLayoutDimension uniformAcrossSiblingsWithEstimate: method. I have two collection view items positioned side by side in a a grid and would like to use this feature to give them equal heights. I configure the items like so: -Each "box" in grid is made up of two vertical items -Title item configured with a fractional width of 0.5 and a estimated height. -Description item configured with a fractional width of 0.5 and a estimated height. Then the "box" wraps both the "title item" and a description item vertically NSCollectionLayoutSize *boxSize = [NSCollectionLayoutSize sizeWithFractionalWidth:0.5 estHeightUniformAcrossSiblings:estTitleHeight+estDescriptionheight]]; NSCollectionLayoutGroup *boxGroup = [NSCollectionLayoutGroup verticalGroupWithLayoutSize:boxSize subitems:@[titleItem,descriptionItem]]; //Repeat the box twice to make a side by side grid. //entireRowSize is fractional width of 1.0 and estimated height (not uniform across siblings). NSCollectionLayoutGroup *sideBySideGroup = [NSCollectionLayoutGroup horizontalGroupWithLayoutSize:entireRowSize repeatingSubitem:boxGroup count:2]; But at runtime the grids do not have equal heights. It looks exactly the same as it was on iOS 16. Am I doing something wrong? Thanks in advance.
0
0
399
Oct ’23
Mac Catalyst: Presenting view controller <UIAlertController:> from detached view controller <MyViewController:> is not supported, and may result in incorrect safe area insets and a corrupt root presentation on Sonoma
Okay so I'm getting this log every time I present a UIAlertController: Mac Catalyst: Presenting view controller <UIAlertController: 0x10f027000> from detached view controller <MyViewController: 0x10d104080> is not supported, and may result in incorrect safe area insets and a corrupt root presentation. Make sure <MyViewController: 0x10d104080> is in the view controller hierarchy before presenting from it. Will become a hard exception in a future release. A few points: MyViewController is not detached and the presentation shows just fine. I specifically check for this before presenting the alert controller like so: BOOL okayToPresentError = (self.isViewLoaded && self.view.window != nil); if (okayToPresentError) { [self presentErrorInAlertController:error]; } else { //Wait until view did appear. self.errorToPresentInViewDidAppear = error; } It spews out every time an error is fed back to my app and I present the alert controller (I can turn off the network connection and I show an alert controller with a "retry" button in it which will loop the error back so I can replay the error alert presentation over and over again) . Every time the alert controller is presented, I get this spewing in the console. Please don't start throwing hard exceptions because the check is faulty.
2
1
1.3k
Oct ’23
iOS 17 Airdropped file not opening in our app and instead opening in files app
Our application is configured to handle a custom file type with the extension .ptw. Until the release of iOS 17, when we used Airdrop to send a .ptw file, it would seamlessly open directly in our app on the receiving device. However, since iOS 17, we've noticed a change in behavior where the .ptw file is now being automatically saved to the Files app. To access it in our app, we must manually tap the share button and select our app from the sharing menu. I'm curious to know if others have experienced this change as well, and whether this is the expected behavior in iOS 17 or We are missing some configurations to regain the previous behaviour. If anyone has any insights, workarounds, or suggestions regarding this issue, please share them here.
2
1
1.1k
Oct ’23
traitCollectionDidChange deprecated in Xcode 15
I am using UIViewController, and I need to know when devices appearance changes. Previously this worked with a delegate function. override func traitCollectionDidChange(_ previousTraitCollection: UITraitCollection?) { super.traitCollectionDidChange(previousTraitCollection) // ⚠️ // Update UI } Xcode 15 gives us the deprecation warning. 'traitCollectionDidChange' was deprecated in iOS 17.0: Use the trait change registration APIs declared in the UITraitChangeObservable protocol The new function with the completion block registerForTraitChanges, needs the [UITrait] parameter. Both of my attempts are failing to compile. let traits = [UIUserInterfaceStyle.light, UIUserInterfaceStyle.dark] view.registerForTraitChanges(traits) { _, _ in // Update UI } Cannot convert value of type '[UIUserInterfaceStyle]' to expected argument type '[UITrait]' (aka 'Array') view.registerForTraitChanges(self.traitCollection.userInterfaceStyle) { _, _ in // Update UI } Cannot convert the value of type 'UIUserInterfaceStyle' to expected argument type '[UITrait]' (aka 'Array') Please share working code example. Also, does the completion block guarantee to run on the main thread?
1
0
1.2k
Oct ’23
NSToolbar Draws On Top of "Full Screen" Video Played in WKWebView in Mac Catalyst app
I have a Mac Catalyst app configured like so: The root view controller on the window is a tripe split UISplitViewController. The secondary view controller in the Split View controller is a view controller that uses WKWebView. Load a website in the WKWebview that has a video. Expand the video to “Full screen” (on Mac Catalyst this is only “Full window” because the window does not enter full screen like AppKit apps do). The NSToolbar overlaps the “Full screen video.” On a triple Split View controller only the portions of the toolbar in the secondary and supplementary columns show through (the video actually covers the toolbar area in the “primary” column). The expected results: -For the video to cover the entire window including the NSToolbar. Actual results: The NSToolbar draw on top of the video. -- Anyone know of a workaround? I filed FB13229032
0
0
426
Oct ’23
UIPopover Shadow not updating upon resize
We're displaying a navigation controller inside a popover in our iPad app. Upon pushing or popping a view controller onto the navigation controller we adjust the intrinsic content size based on the new view controller's height, causing the popover to correctly resize. However, the drop shadow does not seem to be redrawn or resized, causing the old shadow to be still visible. Are we missing something we need to call to make the shadow resize?
1
0
235
Oct ’23