Post

Replies

Boosts

Views

Activity

How to change the modification time of a directory on FAT32
I noticed that when copying files in the Finder to a FAT32 volume, the modification dates of directories show the current date, but when copying from the same FAT32 volume to my Mac the directory modification dates are preserved. Using the Terminal command touch -mt 202110251405 path_to_file where path_to_file points to a directory doesn't seem to work: the modification time stays the same as before. When path_to_file is a regular file, it works. Is this expected, or is there some limitation with FAT32 directories?
0
0
528
Oct ’22
Attachments from App Store Review cannot be downloaded
My app update won’t be accepted because apparently it contains a bug that causes a crash that I cannot reproduce. The review team uploaded a crash report on App Store Connect on September 27th, 2022, but ever since downloading it was not possible because of an App Store Connect bug. The corresponding Feedback Assistant report is also still open. So my update has now been held in queue for almost 4 months. Can anybody please speed this up? This is unacceptable.
0
0
576
Dec ’22
Adding regular expression find option to UITextView
I'm trying to implement a regular expression search in a UITextView with the UITextView.findInteraction introduced in iOS 16. The documentation shows a UIFindInteraction.optionsMenuProvider property and reads You use this closure to modify, augement or omit options from the default set available in UITextSearchOptions. But it's not clear how to actually modify the UITextSearchOptions, and where these options are even stored. And how would I omit options? How can the UIActions passed as the only argument to UIFindInteraction.optionsMenuProvider be distinguished from one another?
Topic: UI Frameworks SubTopic: UIKit Tags:
0
0
760
Dec ’22
Download individual iCloud file with progress callback
Is this possible and how? I've only seen examples about using NSMetadataQuery to search directories for files matching some predicate. I tried using this code let query = NSMetadataQuery() query.valueListAttributes = [NSMetadataUbiquitousItemPercentDownloadedKey] query.predicate = NSPredicate(value: true) let item = NSMetadataItem(url: url)! query.searchItems = [item] NotificationCenter.default.addObserver(forName: .NSMetadataQueryDidUpdate, object: query, queue: nil) { notification in     print(notification) } NotificationCenter.default.addObserver(forName: .NSMetadataQueryDidFinishGathering, object: query, queue: nil) { notification in     print(notification) } query.start() but this gives the following exception *** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: 'Unknown kind of NSPredicate given to NSMetadataQuery (TRUEPREDICATE)' Without any predicate the query doesn't seem to start at all, like mentioned in the official documentation.
0
0
970
Jan ’23
UISplitViewController.presentsWithGesture doesn't work when style != Unspecified
I tried to update the UISplitViewController in my old iOS project to use the newer column-based API, but noticed that when setting the Style to Double Column in IB from the currently selected Unspecified (Discouraged), the swipe gesture doesn't show and hide the master view controller anymore, even if the option Presents Primary With Gesture is selected. This also happens with a fresh project where I dragged the standard split view controller into the IB canvas as the initial view controller. Is this expected or am I missing something?
Topic: UI Frameworks SubTopic: UIKit Tags:
0
0
468
Jan ’23
SCNCylinder shows mirrored texture for base and top elements
SCNBox renders the textures correctly, but SCNCylinder seems to mirror the base and top textures. The following code reproduces the issue (just set the image variable to the name of the image you're using, in this case an image with the number 2 in it): class GameViewController: NSViewController { let image = "art.scnassets/image.heic"          override func viewDidLoad() {         super.viewDidLoad()                  let scene = SCNScene(named: "art.scnassets/ship.scn")!                  let cameraNode = SCNNode()         cameraNode.camera = SCNCamera()         scene.rootNode.addChildNode(cameraNode)         cameraNode.position = SCNVector3(x: 0, y: 3, z: 3)         let scnView = self.view as! SCNView         scnView.scene = scene                  let node = SCNNode(geometry: SCNCylinder(radius: 0.5, height: 1))         node.geometry!.materials = [SCNMaterial(), SCNMaterial(), SCNMaterial()]         node.geometry!.materials[1].diffuse.contents = image         node.geometry!.materials[2].diffuse.contents = image         node.position.x = -1         node.runAction(.repeatForever(.rotate(by: 1, around: SCNVector3(x: 1, y: 0, z: 0), duration: 1)))         scene.rootNode.addChildNode(node)         let node2 = SCNNode(geometry: SCNBox(width: 1, height: 1, length: 1, chamferRadius: 0))         node2.geometry!.materials = [SCNMaterial(), SCNMaterial(), SCNMaterial(), SCNMaterial(), SCNMaterial(), SCNMaterial()]         node2.geometry!.materials[4].diffuse.contents = image         node2.geometry!.materials[5].diffuse.contents = image         node2.position.x = 1         node2.runAction(.repeatForever(.rotate(by: 1, around: SCNVector3(x: 1, y: 0, z: 0), duration: 1)))         scene.rootNode.addChildNode(node2)         cameraNode.look(at: SCNVector3(x: 0, y: 0, z: 0))     } }
0
0
656
Feb ’23
Cannot download Feedback Assistant data
I have been trying for several months now to download my Feedback Assistant data on privacy.apple.com. Since the very first time I tried, I keep receiving emails that "because of a technical issue it wasn't possible to download your data and you'll receive a notification as soon as the problem is solved. This procedure can last up to 60 days". And some days later I receive an email "The technical problem is now solved. To get a copy of your data, initiate a new request". I already initiated a new request at least twice, and each time I get the same outcome I just described, i.e. one email tells me the problem is solved, and the next one tells me that there is a problem that will be solved within 60 days. Am I doing something wrong?
0
0
578
Feb ’23
SCNNode.position is sometimes not reflected on screen
The desired outcome of the code below is that both the red and yellow spheres should be at the same position at the center of the scene, (0, 0, 0), but instead the red sphere remains at its initial position (1, 0, 0). Commenting out any of the lines marked in the code, strangely, solves the issue. The code shows a simplified version of some other code, so it would be desirable to keep the order of the lines as they currently are. Am I doing something wrong? class GameViewController: NSViewController {          override func viewDidLoad() {         super.viewDidLoad()                  let scene = SCNScene(named: "art.scnassets/ship.scn")!                  let cameraNode = SCNNode()         cameraNode.camera = SCNCamera()         scene.rootNode.addChildNode(cameraNode)         cameraNode.position = SCNVector3(x: 0, y: 0, z: 15)                  let lightNode = SCNNode()         lightNode.light = SCNLight()         lightNode.light!.type = .omni         lightNode.position = SCNVector3(x: 0, y: 10, z: 10)         scene.rootNode.addChildNode(lightNode)                  let scnView = self.view as! SCNView         scnView.scene = scene                  let parent0 = SCNNode()         scene.rootNode.addChildNode(parent0)         let parent1 = SCNNode()         scene.rootNode.addChildNode(parent1)         let sphere0 = SCNNode(geometry: SCNSphere(radius: 1))         sphere0.geometry!.firstMaterial!.diffuse.contents = NSColor.red                  let sphere1 = SCNNode(geometry: SCNSphere(radius: 1))         sphere1.geometry!.firstMaterial!.diffuse.contents = NSColor.yellow                  sphere0.position = SCNVector3(x: -1, y: 0, z: 0) // commenting out this line solves the issue         parent1.addChildNode(sphere0) // or commenting out this line solves the issue         sphere0.position = SCNVector3(x: 0, y: 0, z: 0)         parent0.addChildNode(sphere1) // or commenting out this line solves the issue                  DispatchQueue.main.asyncAfter(deadline: .now() + 1) {             print(sphere0.worldPosition, sphere1.worldPosition)         }     } }
1
0
796
Feb ’23
Passing nil to NEFilterDataProvider.apply(_:completionHandler:) causes error and doesn't apply default settings as documented
I'm trying to adapt the Filter Network Traffic sample code found at https://developer.apple.com/documentation/networkextension/filtering_network_traffic In FilterDataProvider.swift I've replaced the argument passed to NEFilterDataProvider.apply(_:completionHandler:) with nil, which according to the documentation should apply the default settings. Instead I'm getting the following error: Error Domain=NEFilterErrorDomain Code=1 "The settings parameter doesn’t correspond to a NEFilterSettings object" (translated from my local language) (When logging the error with os_log, the Console app just shows it as <private>. A NSLog call instead displays it correctly.) After that the internet doesn't seem to work at all anymore and I have to trash the app to make the internet work again. (If the bin is not completely empty before trashing the app from the Applications folder, I'm prompted that there is another operation in progress like moving a file.) If a nil parameter doesn't work, what is the correct way of not filtering anything, but just observing all the network traffic?
1
0
404
Mar ’23
Listing all apps with App Store Connect API returns error ENTITY_INVALID
I'm using this code to get all apps in App Store Connect: let jwt = ... var request = URLRequest(url: URL(string: "https://api.appstoreconnect.apple.com/v1/apps")!) request.setValue("Bearer \(jwt)", forHTTPHeaderField: "Authorization") let session = URLSession(configuration: .ephemeral) let task = session.dataTask(with: request) { data, response, error in if let error = error { print(error) } else if let data = data { print(String(data: data, encoding: .utf8)) } } task.resume() But the response is an error status: 400, code: ENTITY_INVALID, title: JSON processing failed. What entity is this error referring to? And what JSON is invalid? The JWT token seems to be fine, since when using a random value I get an error 401 NOT_AUTHORIZED.
0
0
549
Mar ’23
Force app appearance in UI tests to be light or dark
In my UI test I'm trying to force the app's appearance (light or dark). When the system appearance is light, I can force the app to be dark with this code: var app = XCUIApplication() app.launchArguments += ["-AppleInterfaceStyle", "Dark"] app.launch() But replacing Dark with Light doesn't have any effect: if the system appearance is dark: the app remains dark. Is this not possible?
0
0
463
Mar ’23
Using custom shadow path on NSView
Unfortunately it seems that setting the shadow attributes on the layer directly doesn't work: let shadowView = NSView(frame: CGRect(x: 0, y: 0, width: 100, height: 100)) shadowView.wantsLayer = true shadowView.layer!.backgroundColor = .white shadowView.layer!.shadowRadius = 50 shadowView.layer!.shadowColor = .black shadowView.layer!.shadowOffset = CGSize(width: 0, height: -30) shadowView.layer!.shadowPath = CGPath(roundedRect: shadowView.bounds, cornerWidth: 25, cornerHeight: 25, transform: nil) Setting the NSView.shadow property instead works: let shadowView = NSView(frame: CGRect(x: 0, y: 0, width: 100, height: 100))let shadow = NSShadow() shadow.shadowBlurRadius = 50 shadow.shadowColor = .black shadow.shadowOffset = CGSize(width: 0, height: -30) shadowView.shadow = shadow shadowView.wantsLayer = true shadowView.layer!.backgroundColor = .white But NSShadow doesn't support a custom path. What's the easiest way to set a shadow with a custom path?
Topic: UI Frameworks SubTopic: AppKit Tags:
0
0
498
Mar ’23
Localized name for default sounds in /System/Library/Sounds
In the Mail settings one can choose one of the default sounds located at /System/Library/Sounds. Playing them is easy, e.g. with NSSound(named: "Purr")?.play(), but how can I show a localized name for those sounds as Mail does? I couldn't find any way of getting a localized name. Would I have to manually translate each one to each supported language?
Topic: UI Frameworks SubTopic: AppKit Tags:
0
0
448
Mar ’23