Post

Replies

Boosts

Views

Activity

static analyzer error in std::sort
I'm getting a static analysis warning on the following code. I don't think it could be my error, but I guess it's more likely a static analysis false positive than a C++ standard library bug. The warning says "Method called on moved-from object of type 'std::basic_string'". Tested in Xcode 26.5 RC. Reported as FB22735405. #include <algorithm> #include <string> #include <vector> #include <CoreFoundation/CoreFoundation.h> template < class traits = std::char_traits<char>, class Allocator = std::allocator<char> > struct UTF8StringLess { bool operator()( const std::basic_string<char, traits, Allocator>& inFirst, const std::basic_string<char, traits, Allocator>& inSecond ) const; }; template<class traits, class Allocator> inline bool UTF8StringLess<traits, Allocator>::operator()( const std::basic_string<char, traits, Allocator>& inFirst, const std::basic_string<char, traits, Allocator>& inSecond ) const { CFStringRef theFirst = ::CFStringCreateWithCString( nullptr, inFirst.c_str(), kCFStringEncodingUTF8 ); CFStringRef theSecond = ::CFStringCreateWithCString( nullptr, inSecond.c_str(), kCFStringEncodingUTF8 ); CFComparisonResult compResult = ::CFStringCompare( theFirst, theSecond, kCFCompareCaseInsensitive ); bool isLess = (compResult == kCFCompareLessThan); ::CFRelease( theFirst ); ::CFRelease( theSecond ); return isLess; } int main(int argc, const char * argv[]) { std::vector<std::string> names{ "obey", "Zorro", "can" }; std::sort( names.begin(), names.end(), UTF8StringLess() ); return EXIT_SUCCESS; }
0
0
5
46m
performDrop returns true, but drag image animates away
I have a view that conforms to DropDelegate. When a file is dragged from the Finder and dropped on the view, the performDrop(info:) method successfully extracts a URL from the item provider and returns true, but the drag image slides away as if the drop had been rejected. Why? func performDrop(info: DropInfo) -> Bool { bgColor = .yellow let providers = info.itemProviders(for: [.fileURL]) print("performDrop, providers: \(providers.count)") if let aProvider = providers.first { if aProvider.hasItemConformingToTypeIdentifier(UTType.url.identifier) { aProvider.loadItem(forTypeIdentifier: UTType.url.identifier) { (item, error) in if let error = error { print("Error retrieving item provider data: \(error.localizedDescription)") return } if let url = item as? URL { print("Received file URL (from Data.1): \(url)") } else if let data = item as? Data, let url = URL(dataRepresentation: data, relativeTo: nil) { print("Received file URL (from Data.2): \(url)") } } } } return true }
Topic: UI Frameworks SubTopic: SwiftUI Tags:
0
0
157
Feb ’26
How can I be notified if another app goes full screen on macOS?
Is there any way I can know that another app has gone full screen? Please note that this is not what NSWindowDidEnterFullScreenNotification does, that only works for my own windows. As for why I need to know: Say you're playing a YouTube video full screen. The video fills up the main display, and if there's a second display, it goes black. Well, mostly. I have a utility app with small status windows that remain on top. I'd like to be polite and hide them in this scenario.
1
1
309
Jan ’26
How to print WKWebView in Sequoia?
I want to print the content of a WKWebView. I've done some searching, and many people have struggled with this over the years. Some claimed success, but their solutions don't work for me. One person created images for each pages and printed that, but then if you were to print to PDF, you'd get a PDF containing images rather than text. If I just call the printView(_:)) method of the view, I get blank pages. With the following more elaborate code, I get a partial printout, 11 out of what should be about 13 pages. let info = NSPrintInfo.shared info.topMargin = 72.0; info.bottomMargin = 72.0; info.leftMargin = 72.0; info.rightMargin = 72.0; info.isVerticallyCentered = false; info.isHorizontallyCentered = false; info.horizontalPagination = .fit; info.verticalPagination = .automatic; let printOp = webView!.printOperation( with: info ) printOp.canSpawnSeparateThread = true printOp.view?.frame = NSMakeRect( 0, 0, info.paperSize.width, info.paperSize.height ) printOp.runModal(for: webView.window!, delegate: self, didRun: nil, contextInfo: nil ) When I run the above under the debugger, I see console messages saying CGContextClipToRect: invalid context 0x0. Once the print dialog appears, if I touch (but not change) the selected printer, then the page count changes to the correct value.
15
0
1.2k
Jan ’26
Can safe area layout guidelines be used in a macOS XIB?
The documentation of the NSPopover property hasFullSizeContent says that when it's true, you should Use the safeAreaLayoutGuide of the contentViewController view to ensure that your content is fully visible and doesn’t become clipped when displayed. I can do that by adding auto-layout constraints programmatically, but is there a way to do it in the xib? When I googled it, the AI summary begins To use safe areas in a Mac XIB (Interface Builder), enable the "Use Safe Area Layout Guides" checkbox in the File Inspector for your view but I have not found any non-AI indications that such a checkbox exists for macOS. (I'm using Xcode 26.2.)
0
0
426
Jan ’26
NSWindowController subclass in Swift
In trying to convert some Objective-C to Swift, I have a subclass of NSWindowController and want to write a convenience initializer. The documentation says You can also implement an NSWindowController subclass to avoid requiring client code to get the corresponding nib’s filename and pass it to init(windowNibName:) or init(windowNibName:owner:) when instantiating the window controller. The best way to do this is to override windowNibName to return the nib’s filename and instantiate the window controller by passing nil to init(window:). My attempt to do that looks like this: class EdgeTab: NSWindowController { override var windowNibName: NSNib.Name? { "EdgeTab" } required init?(coder: NSCoder) { super.init(coder: coder) } convenience init() { self.init( window: nil ) } } But I'm getting an error message saying "Incorrect argument label in call (have 'window:', expected 'coder:')". Why the heck is the compiler trying to use init(coder:) instead of init(window:)?
2
0
762
Dec ’25
NSWorkspace openURL fails on file in iCloud Drive
When I pass a file path url of a file in iCloud Drive to -[NSWorkspace openURLs:withApplicationAtURL:configuration:completionHandler:], it fails. There is no exception, and the completion handler isn't called. This is in a sandboxed app on macOS 26.1. NSWorkspaceOpenConfiguration* config = NSWorkspaceOpenConfiguration.configuration; config.activates = YES; config.promptsUserIfNeeded = YES; NSLog(@"performDrag 2 with %@", filePathObs); [NSWorkspace.sharedWorkspace openURLs: filePathObs withApplicationAtURL: appURL configuration: config completionHandler: ^(NSRunningApplication * _Nullable app, NSError * _Nullable error) { NSLog(@"performDrag 3"); if (error != nil) { NSLog(@"%@\n%@", error, filePathObs); } NSLog(@"complete performDrag"); }]; NSLog(@"performDrag 4"); In the debug log, the performDrag 2 and performDrag 4 messages appear. I also looked in the Console log, but the only messages that mention my app don't mean anything to me. AFIsDeviceGreymatterEligible Missing entitlements for os_eligibility lookup 6c Reentrant message: kDragIPCCompleted, current message: kDragIPCLeaveApplication
8
0
738
Dec ’25
Bogus include directories in Xcode 26
I've recently switched from using Xcode 15 under Ventura to using Xcode 26 under Sequoia on an Intel-CPU Mac. This is a macOS project that uses a legacy build location, and the sources are C++ and Objective-C. For every source being compiled, I get a clang warning "no such include directory" for these 4 directories: $BUILD_DIR/Debug/include $BUILD_DIR/SBEngineV4.build/Debug/V4 Dual SBEngine.build/DerivedSources-normal/x86_64 $BUILD_DIR/SBEngineV4.build/Debug/V4 Dual SBEngine.build/DerivedSources/x86_64 $BUILD_DIR/SBEngineV4.build/Debug/V4 Dual SBEngine.build/DerivedSources I can't figure out where it's getting those directories. I added a Run Script build phase that says echo $HEADER_SEARCH_PATHS, and the first path that reports is the $BUILD_DIR/Debug/include path, yet I don't see that when I look at the header search paths in the target build settings. I tried deleting all the derived data. I tried Xcode 26.0.1 and 26.1 beta 2.
1
0
273
Oct ’25
ENABLE_ENHANCED_SECURITY module file not found
When I tried turning on ENABLE_ENHANCED_SECURITY = YES in an Xcode 26.1 beta project, I got a bunch of "module file not found" errors like this: While building module 'CoreServices': In file included from <module-includes>:1: /Applications/Xcode26.1-beta.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/CoreServices.framework/Headers/CoreServices.h:19:2: fatal error: module file '/Volumes/Work/Xcode-derived/PlainCalc3-gixjfymjqamwmufdwcseugzjehqa/Build/Intermediates.noindex/ExplicitPrecompiledModules/CoreFoundation-5POB3HW0BHFSPWLD7DOOKAULM.pcm' not found: module file not found 19 | #include <CoreFoundation/CoreFoundation.h> | ^ I tried deleting the project's derived data. Is this a known issue?
0
0
214
Sep ’25
Deprecation of WKWebView printOperationWithPrintInfo:
I have some working Objective-C code that displays a WKWebView and allows printing that content. However, it uses the method -[WKWebView printOperationWithPrintInfo:], which the documentation says is deprecated as of macOS 10.15. However, it doesn't say why this method is deprecated, or what the recommended replacement is. The declaration in WKWebView.h does not even indicate that the method is deprecated. But as an alternative, I tried using +[NSPrintOperation printOperationWithView:printInfo]. Doing it that way just prints a blank page. So, should I keep doing it the doubtful way?
1
0
205
Sep ’25
Printing of NSTextView
I have a document-based macOS app written in Objective-C, and each document window contains a scrollable NSTextView. I know that printing can get complicated if you want to do nice pagination, but is there a quick and dirty way to get basic printing working? As it is, the print panel shows up, but its preview area is totally blank. Here's the current printing part of my NSDocument subclass. - (NSPrintInfo *)printInfo { NSPrintInfo *printInfo = [super printInfo]; [printInfo setHorizontalPagination: NSPrintingPaginationModeFit]; [printInfo setHorizontallyCentered: NO]; [printInfo setVerticallyCentered: NO]; [printInfo setLeftMargin: 72.0]; [printInfo setRightMargin: 72.0]; [printInfo setTopMargin: 72.0]; [printInfo setBottomMargin: 72.0]; return printInfo; } - (void)printDocumentWithSettings:(NSDictionary<NSPrintInfoAttributeKey, id> *)printSettings showPrintPanel:(BOOL)showPrintPanel delegate:(id)delegate didPrintSelector:(SEL)didPrintSelector contextInfo:(void *)contextInfo { NSPrintInfo* thePrintInfo = [self printInfo]; [thePrintInfo setVerticallyCentered: NO ]; NSPrintOperation *op = [NSPrintOperation printOperationWithView: _textView printInfo: thePrintInfo ]; [op runOperationModalForWindow: _docWindow delegate: delegate didRunSelector: didPrintSelector contextInfo: contextInfo]; }
Topic: UI Frameworks SubTopic: AppKit Tags:
2
0
226
Aug ’25
static analyzer error in std::sort
I'm getting a static analysis warning on the following code. I don't think it could be my error, but I guess it's more likely a static analysis false positive than a C++ standard library bug. The warning says "Method called on moved-from object of type 'std::basic_string'". Tested in Xcode 26.5 RC. Reported as FB22735405. #include <algorithm> #include <string> #include <vector> #include <CoreFoundation/CoreFoundation.h> template < class traits = std::char_traits<char>, class Allocator = std::allocator<char> > struct UTF8StringLess { bool operator()( const std::basic_string<char, traits, Allocator>& inFirst, const std::basic_string<char, traits, Allocator>& inSecond ) const; }; template<class traits, class Allocator> inline bool UTF8StringLess<traits, Allocator>::operator()( const std::basic_string<char, traits, Allocator>& inFirst, const std::basic_string<char, traits, Allocator>& inSecond ) const { CFStringRef theFirst = ::CFStringCreateWithCString( nullptr, inFirst.c_str(), kCFStringEncodingUTF8 ); CFStringRef theSecond = ::CFStringCreateWithCString( nullptr, inSecond.c_str(), kCFStringEncodingUTF8 ); CFComparisonResult compResult = ::CFStringCompare( theFirst, theSecond, kCFCompareCaseInsensitive ); bool isLess = (compResult == kCFCompareLessThan); ::CFRelease( theFirst ); ::CFRelease( theSecond ); return isLess; } int main(int argc, const char * argv[]) { std::vector<std::string> names{ "obey", "Zorro", "can" }; std::sort( names.begin(), names.end(), UTF8StringLess() ); return EXIT_SUCCESS; }
Replies
0
Boosts
0
Views
5
Activity
46m
performDrop returns true, but drag image animates away
I have a view that conforms to DropDelegate. When a file is dragged from the Finder and dropped on the view, the performDrop(info:) method successfully extracts a URL from the item provider and returns true, but the drag image slides away as if the drop had been rejected. Why? func performDrop(info: DropInfo) -> Bool { bgColor = .yellow let providers = info.itemProviders(for: [.fileURL]) print("performDrop, providers: \(providers.count)") if let aProvider = providers.first { if aProvider.hasItemConformingToTypeIdentifier(UTType.url.identifier) { aProvider.loadItem(forTypeIdentifier: UTType.url.identifier) { (item, error) in if let error = error { print("Error retrieving item provider data: \(error.localizedDescription)") return } if let url = item as? URL { print("Received file URL (from Data.1): \(url)") } else if let data = item as? Data, let url = URL(dataRepresentation: data, relativeTo: nil) { print("Received file URL (from Data.2): \(url)") } } } } return true }
Topic: UI Frameworks SubTopic: SwiftUI Tags:
Replies
0
Boosts
0
Views
157
Activity
Feb ’26
How can I be notified if another app goes full screen on macOS?
Is there any way I can know that another app has gone full screen? Please note that this is not what NSWindowDidEnterFullScreenNotification does, that only works for my own windows. As for why I need to know: Say you're playing a YouTube video full screen. The video fills up the main display, and if there's a second display, it goes black. Well, mostly. I have a utility app with small status windows that remain on top. I'd like to be polite and hide them in this scenario.
Replies
1
Boosts
1
Views
309
Activity
Jan ’26
How to print WKWebView in Sequoia?
I want to print the content of a WKWebView. I've done some searching, and many people have struggled with this over the years. Some claimed success, but their solutions don't work for me. One person created images for each pages and printed that, but then if you were to print to PDF, you'd get a PDF containing images rather than text. If I just call the printView(_:)) method of the view, I get blank pages. With the following more elaborate code, I get a partial printout, 11 out of what should be about 13 pages. let info = NSPrintInfo.shared info.topMargin = 72.0; info.bottomMargin = 72.0; info.leftMargin = 72.0; info.rightMargin = 72.0; info.isVerticallyCentered = false; info.isHorizontallyCentered = false; info.horizontalPagination = .fit; info.verticalPagination = .automatic; let printOp = webView!.printOperation( with: info ) printOp.canSpawnSeparateThread = true printOp.view?.frame = NSMakeRect( 0, 0, info.paperSize.width, info.paperSize.height ) printOp.runModal(for: webView.window!, delegate: self, didRun: nil, contextInfo: nil ) When I run the above under the debugger, I see console messages saying CGContextClipToRect: invalid context 0x0. Once the print dialog appears, if I touch (but not change) the selected printer, then the page count changes to the correct value.
Replies
15
Boosts
0
Views
1.2k
Activity
Jan ’26
Can safe area layout guidelines be used in a macOS XIB?
The documentation of the NSPopover property hasFullSizeContent says that when it's true, you should Use the safeAreaLayoutGuide of the contentViewController view to ensure that your content is fully visible and doesn’t become clipped when displayed. I can do that by adding auto-layout constraints programmatically, but is there a way to do it in the xib? When I googled it, the AI summary begins To use safe areas in a Mac XIB (Interface Builder), enable the "Use Safe Area Layout Guides" checkbox in the File Inspector for your view but I have not found any non-AI indications that such a checkbox exists for macOS. (I'm using Xcode 26.2.)
Replies
0
Boosts
0
Views
426
Activity
Jan ’26
Tahoe not displaying new icon made with Icon Composer
I made a new app icon with Icon Composer, and added it to my Xcode project. In the built app, I see AppIcon.icon next to the old AppIcon.icns. But Tahoe is not showing the new icon. Is this because Tahoe has cached the old icon somewhere, and if so, is there some way to make it refresh?
Replies
4
Boosts
0
Views
708
Activity
Jan ’26
NSWindowController subclass in Swift
In trying to convert some Objective-C to Swift, I have a subclass of NSWindowController and want to write a convenience initializer. The documentation says You can also implement an NSWindowController subclass to avoid requiring client code to get the corresponding nib’s filename and pass it to init(windowNibName:) or init(windowNibName:owner:) when instantiating the window controller. The best way to do this is to override windowNibName to return the nib’s filename and instantiate the window controller by passing nil to init(window:). My attempt to do that looks like this: class EdgeTab: NSWindowController { override var windowNibName: NSNib.Name? { "EdgeTab" } required init?(coder: NSCoder) { super.init(coder: coder) } convenience init() { self.init( window: nil ) } } But I'm getting an error message saying "Incorrect argument label in call (have 'window:', expected 'coder:')". Why the heck is the compiler trying to use init(coder:) instead of init(window:)?
Replies
2
Boosts
0
Views
762
Activity
Dec ’25
Can't sign in to Apple in Tahoe VM
Running Tahoe 26.1 in a virtual machine, I can't sign into my Apple account. There is an error message saying "Could not communicate with the server." Internet access otherwise seems to be working in the VM. I tried both UTM and VirtualBuddy. Is this supposed to work?
Replies
1
Boosts
0
Views
397
Activity
Dec ’25
NSWorkspace openURL fails on file in iCloud Drive
When I pass a file path url of a file in iCloud Drive to -[NSWorkspace openURLs:withApplicationAtURL:configuration:completionHandler:], it fails. There is no exception, and the completion handler isn't called. This is in a sandboxed app on macOS 26.1. NSWorkspaceOpenConfiguration* config = NSWorkspaceOpenConfiguration.configuration; config.activates = YES; config.promptsUserIfNeeded = YES; NSLog(@"performDrag 2 with %@", filePathObs); [NSWorkspace.sharedWorkspace openURLs: filePathObs withApplicationAtURL: appURL configuration: config completionHandler: ^(NSRunningApplication * _Nullable app, NSError * _Nullable error) { NSLog(@"performDrag 3"); if (error != nil) { NSLog(@"%@\n%@", error, filePathObs); } NSLog(@"complete performDrag"); }]; NSLog(@"performDrag 4"); In the debug log, the performDrag 2 and performDrag 4 messages appear. I also looked in the Console log, but the only messages that mention my app don't mean anything to me. AFIsDeviceGreymatterEligible Missing entitlements for os_eligibility lookup 6c Reentrant message: kDragIPCCompleted, current message: kDragIPCLeaveApplication
Replies
8
Boosts
0
Views
738
Activity
Dec ’25
NSTrackingEnabledDuringMouseDrag broken in Ventura
In macOS 13.2, the NSTrackingEnabledDuringMouseDrag flag for NSTrackingArea is broken, i.e., mouse-entered and mouse-exited events are not sent during a drag. This problem did not exist in macOS 12. I've filed a bug report, FB11973492, just wondering if anyone knows a workaround.
Replies
3
Boosts
2
Views
1.3k
Activity
Nov ’25
Bogus include directories in Xcode 26
I've recently switched from using Xcode 15 under Ventura to using Xcode 26 under Sequoia on an Intel-CPU Mac. This is a macOS project that uses a legacy build location, and the sources are C++ and Objective-C. For every source being compiled, I get a clang warning "no such include directory" for these 4 directories: $BUILD_DIR/Debug/include $BUILD_DIR/SBEngineV4.build/Debug/V4 Dual SBEngine.build/DerivedSources-normal/x86_64 $BUILD_DIR/SBEngineV4.build/Debug/V4 Dual SBEngine.build/DerivedSources/x86_64 $BUILD_DIR/SBEngineV4.build/Debug/V4 Dual SBEngine.build/DerivedSources I can't figure out where it's getting those directories. I added a Run Script build phase that says echo $HEADER_SEARCH_PATHS, and the first path that reports is the $BUILD_DIR/Debug/include path, yet I don't see that when I look at the header search paths in the target build settings. I tried deleting all the derived data. I tried Xcode 26.0.1 and 26.1 beta 2.
Replies
1
Boosts
0
Views
273
Activity
Oct ’25
ENABLE_ENHANCED_SECURITY module file not found
When I tried turning on ENABLE_ENHANCED_SECURITY = YES in an Xcode 26.1 beta project, I got a bunch of "module file not found" errors like this: While building module 'CoreServices': In file included from <module-includes>:1: /Applications/Xcode26.1-beta.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/CoreServices.framework/Headers/CoreServices.h:19:2: fatal error: module file '/Volumes/Work/Xcode-derived/PlainCalc3-gixjfymjqamwmufdwcseugzjehqa/Build/Intermediates.noindex/ExplicitPrecompiledModules/CoreFoundation-5POB3HW0BHFSPWLD7DOOKAULM.pcm' not found: module file not found 19 | #include <CoreFoundation/CoreFoundation.h> | ^ I tried deleting the project's derived data. Is this a known issue?
Replies
0
Boosts
0
Views
214
Activity
Sep ’25
Deprecation of WKWebView printOperationWithPrintInfo:
I have some working Objective-C code that displays a WKWebView and allows printing that content. However, it uses the method -[WKWebView printOperationWithPrintInfo:], which the documentation says is deprecated as of macOS 10.15. However, it doesn't say why this method is deprecated, or what the recommended replacement is. The declaration in WKWebView.h does not even indicate that the method is deprecated. But as an alternative, I tried using +[NSPrintOperation printOperationWithView:printInfo]. Doing it that way just prints a blank page. So, should I keep doing it the doubtful way?
Replies
1
Boosts
0
Views
205
Activity
Sep ’25
Icon Composer and macOS compatibility
If I use the new beta Icon Composer to make a .icon file for a macOS app, will it work for any macOS versions before 26? If not, can one build with both the .icon and the older asset collection icon?
Replies
0
Boosts
1
Views
304
Activity
Sep ’25
Printing of NSTextView
I have a document-based macOS app written in Objective-C, and each document window contains a scrollable NSTextView. I know that printing can get complicated if you want to do nice pagination, but is there a quick and dirty way to get basic printing working? As it is, the print panel shows up, but its preview area is totally blank. Here's the current printing part of my NSDocument subclass. - (NSPrintInfo *)printInfo { NSPrintInfo *printInfo = [super printInfo]; [printInfo setHorizontalPagination: NSPrintingPaginationModeFit]; [printInfo setHorizontallyCentered: NO]; [printInfo setVerticallyCentered: NO]; [printInfo setLeftMargin: 72.0]; [printInfo setRightMargin: 72.0]; [printInfo setTopMargin: 72.0]; [printInfo setBottomMargin: 72.0]; return printInfo; } - (void)printDocumentWithSettings:(NSDictionary<NSPrintInfoAttributeKey, id> *)printSettings showPrintPanel:(BOOL)showPrintPanel delegate:(id)delegate didPrintSelector:(SEL)didPrintSelector contextInfo:(void *)contextInfo { NSPrintInfo* thePrintInfo = [self printInfo]; [thePrintInfo setVerticallyCentered: NO ]; NSPrintOperation *op = [NSPrintOperation printOperationWithView: _textView printInfo: thePrintInfo ]; [op runOperationModalForWindow: _docWindow delegate: delegate didRunSelector: didPrintSelector contextInfo: contextInfo]; }
Topic: UI Frameworks SubTopic: AppKit Tags:
Replies
2
Boosts
0
Views
226
Activity
Aug ’25