Post

Replies

Boosts

Views

Activity

How to override Document's shouldCloseWindowController method in Swift
To me, the documentation for this method is not at all clear and needs to provide sample code. I tried searching the dev site for sample projects, but they're no longer where they lived for decades before. And where's the TextEdit sample project?! I need to override shouldCloseWindowController so I can make sure some sub-windows can be closed before closing the document's one and only window. I've done that, but then have no idea what I'm supposed to do to all the document to close. I tried this, which is what I think the NSDocument version header says to do: if ((self.windowControllers.first?.shouldCloseDocument) != nil){ self.canClose(withDelegate:delegate as Any, shouldClose:shouldCloseSelector, contextInfo:contextInfo); } But the document never gets the close() method called - only the window goes away.
0
0
858
Mar ’24
Adding ImageAnalysisInteraction from Objective-C
Is it possible to add ImageAnalysis to a UIImageView from my Objective-C app? I went through the work of adding VNRecognizeTextRequest code to analyze the image and hilite the found text rects, but was unsure how to add user interaction with the found text ranges. Then I noticed a web page that described ImageAnalysisInteraction, but it's Swift only, and I don't know how to get to that from Objective-C. I'd love to have actual text selection ranges like you get from this, along with the text actions popover, rather than just hilited rects.
0
0
684
Jul ’23
Can no longer share files to app
I have an iOS/iPadOS app that has the ability to open files by using the Share action in the Files app. The app receives the application:openURL:options: method, but when it tries to access the given url, it produces this error: Error Domain=NSCocoaErrorDomain Code=257 "The file “Zippy.cbz” couldn’t be opened because you don’t have permission to view it." UserInfo={NSURL=file:///private/var/mobile/Containers/Shared/AppGroup/B1C0C77A-2E86-4BD7-9344-845D6DA6FA74/File%20Provider%20Storage/Zippy.cbz, NSFilePath=/private/var/mobile/Containers/Shared/AppGroup/B1C0C77A-2E86-4BD7-9344-845D6DA6FA74/File Provider Storage/Zippy.cbz, NSUnderlyingError=0x283c6d860 {Error Domain=NSPOSIXErrorDomain Code=1 "Operation not permitted"}} This used to work in earlier versions of iPadOS. It's currently running 16.5.1 ©. I see "AppGroup" in the path. Does that mean that something thinks my app is using a shared app group? It's not. Does it need to now in order to receive a shared file?
0
0
741
Jul ’23
Unicode categories as seen in macOS's Emoji & Symbols palette?
The list of categories on the left (and can be customized with the … button at the top-left): Is there any API to get that list of category names and the code points they encompass? They're different than the standard Unicode code point blocks? If so, is it available on iOS? These categories don't appear to be available from any of the unicode.org documents I've seen, but then they host a ton of data, and most of it is beyond my need.
0
0
424
Apr ’23
How to find iOS's Show Lowercase Keys value
In the iOS system prefs->Accessibility->Keyboards, there's the switch for "Show Lowercase Keys", which allows keyboards to show upper- and lower-case key caps. I can't find any mention of an accessor for that value. It doesn't show in NSUserDefaults when I dump them, nor does any header mention it. I'd like to be able to use it in my custom keyboard extension.
3
0
951
Apr ’23
NSUserDefaults for app group suite fails to write from keyboard extension
I have an iOS app which contains a custom keyboard that can be used by any app. They share a few prefs by using an app group and a named suite of NSUserDefaults. Each target (app, keyboard) keep their own instance of the shared prefs by storing it in a property: self.sharedPrefs = [[NSUserDefaults alloc] initWithSuiteName:kPrefsSuiteName]; And then add observers for a couple different prefs: [self.sharedPrefs addObserver:self forKeyPath:kPrefRecents options:NSKeyValueObservingOptionNew | NSKeyValueObservingOptionOld context:nil]; When running in the Simulator, both the app and keyboard can write to the shared prefs and both target's observers correctly respond to changes. But when running on a device (iPhone X, iPad Pro 11"), the app can write to the prefs, but the keyboard fails with: 2023-04-17 14:20:20.095600-0500 projectname[561:23591] [User Defaults] Couldn't write values for keys ( Recents ) in CFPrefsPlistSource<0x2807dc500> (Domain: group.com.my.key, User: kCFPreferencesCurrentUser, ByHost: No, Container: (null), Contents Need Refresh: No): setting preferences outside an application's container requires user-preference-write or file-write-data sandbox access I also noticed this when the app adds its first key value observer to the shared prefs: 2023-04-17 14:57:36.610366-0500 projectname[820:45796] [User Defaults] Couldn't read values in CFPrefsPlistSource<0x280bc1c80> (Domain: group.com.my.key, User: kCFPreferencesAnyUser, ByHost: Yes, Container: (null), Contents Need Refresh: Yes): Using kCFPreferencesAnyUser with a container is only allowed for System Containers, detaching from cfprefsd This is supposed to work. What's wrong here?
1
0
1.2k
Apr ’23
Autosaved documents don't delete
Pertinent system prefs: [X] Ask to keep changes when closing documents [ ] Close windows when quitting an app App setup: autosavesInPlace returns true I've run my app many times and have one test doc that I use each time I run via it being automatically reopened. Recently I created a couple new documents, then closed them before quitting and used the Delete button to dispose of them. Yet each time I run, all the supposedly deleted docs reappear. They're not being deleted from "/Users//Library/Containers//Data/Library/Autosave Information/". Why?
Topic: UI Frameworks SubTopic: AppKit Tags:
1
0
937
Nov ’22
How to override Document's shouldCloseWindowController method in Swift
To me, the documentation for this method is not at all clear and needs to provide sample code. I tried searching the dev site for sample projects, but they're no longer where they lived for decades before. And where's the TextEdit sample project?! I need to override shouldCloseWindowController so I can make sure some sub-windows can be closed before closing the document's one and only window. I've done that, but then have no idea what I'm supposed to do to all the document to close. I tried this, which is what I think the NSDocument version header says to do: if ((self.windowControllers.first?.shouldCloseDocument) != nil){ self.canClose(withDelegate:delegate as Any, shouldClose:shouldCloseSelector, contextInfo:contextInfo); } But the document never gets the close() method called - only the window goes away.
Replies
0
Boosts
0
Views
858
Activity
Mar ’24
Adding ImageAnalysisInteraction from Objective-C
Is it possible to add ImageAnalysis to a UIImageView from my Objective-C app? I went through the work of adding VNRecognizeTextRequest code to analyze the image and hilite the found text rects, but was unsure how to add user interaction with the found text ranges. Then I noticed a web page that described ImageAnalysisInteraction, but it's Swift only, and I don't know how to get to that from Objective-C. I'd love to have actual text selection ranges like you get from this, along with the text actions popover, rather than just hilited rects.
Replies
0
Boosts
0
Views
684
Activity
Jul ’23
Can no longer share files to app
I have an iOS/iPadOS app that has the ability to open files by using the Share action in the Files app. The app receives the application:openURL:options: method, but when it tries to access the given url, it produces this error: Error Domain=NSCocoaErrorDomain Code=257 "The file “Zippy.cbz” couldn’t be opened because you don’t have permission to view it." UserInfo={NSURL=file:///private/var/mobile/Containers/Shared/AppGroup/B1C0C77A-2E86-4BD7-9344-845D6DA6FA74/File%20Provider%20Storage/Zippy.cbz, NSFilePath=/private/var/mobile/Containers/Shared/AppGroup/B1C0C77A-2E86-4BD7-9344-845D6DA6FA74/File Provider Storage/Zippy.cbz, NSUnderlyingError=0x283c6d860 {Error Domain=NSPOSIXErrorDomain Code=1 "Operation not permitted"}} This used to work in earlier versions of iPadOS. It's currently running 16.5.1 ©. I see "AppGroup" in the path. Does that mean that something thinks my app is using a shared app group? It's not. Does it need to now in order to receive a shared file?
Replies
0
Boosts
0
Views
741
Activity
Jul ’23
Unicode categories as seen in macOS's Emoji & Symbols palette?
The list of categories on the left (and can be customized with the … button at the top-left): Is there any API to get that list of category names and the code points they encompass? They're different than the standard Unicode code point blocks? If so, is it available on iOS? These categories don't appear to be available from any of the unicode.org documents I've seen, but then they host a ton of data, and most of it is beyond my need.
Replies
0
Boosts
0
Views
424
Activity
Apr ’23
How to find iOS's Show Lowercase Keys value
In the iOS system prefs->Accessibility->Keyboards, there's the switch for "Show Lowercase Keys", which allows keyboards to show upper- and lower-case key caps. I can't find any mention of an accessor for that value. It doesn't show in NSUserDefaults when I dump them, nor does any header mention it. I'd like to be able to use it in my custom keyboard extension.
Replies
3
Boosts
0
Views
951
Activity
Apr ’23
NSUserDefaults for app group suite fails to write from keyboard extension
I have an iOS app which contains a custom keyboard that can be used by any app. They share a few prefs by using an app group and a named suite of NSUserDefaults. Each target (app, keyboard) keep their own instance of the shared prefs by storing it in a property: self.sharedPrefs = [[NSUserDefaults alloc] initWithSuiteName:kPrefsSuiteName]; And then add observers for a couple different prefs: [self.sharedPrefs addObserver:self forKeyPath:kPrefRecents options:NSKeyValueObservingOptionNew | NSKeyValueObservingOptionOld context:nil]; When running in the Simulator, both the app and keyboard can write to the shared prefs and both target's observers correctly respond to changes. But when running on a device (iPhone X, iPad Pro 11"), the app can write to the prefs, but the keyboard fails with: 2023-04-17 14:20:20.095600-0500 projectname[561:23591] [User Defaults] Couldn't write values for keys ( Recents ) in CFPrefsPlistSource<0x2807dc500> (Domain: group.com.my.key, User: kCFPreferencesCurrentUser, ByHost: No, Container: (null), Contents Need Refresh: No): setting preferences outside an application's container requires user-preference-write or file-write-data sandbox access I also noticed this when the app adds its first key value observer to the shared prefs: 2023-04-17 14:57:36.610366-0500 projectname[820:45796] [User Defaults] Couldn't read values in CFPrefsPlistSource<0x280bc1c80> (Domain: group.com.my.key, User: kCFPreferencesAnyUser, ByHost: Yes, Container: (null), Contents Need Refresh: Yes): Using kCFPreferencesAnyUser with a container is only allowed for System Containers, detaching from cfprefsd This is supposed to work. What's wrong here?
Replies
1
Boosts
0
Views
1.2k
Activity
Apr ’23
Autosaved documents don't delete
Pertinent system prefs: [X] Ask to keep changes when closing documents [ ] Close windows when quitting an app App setup: autosavesInPlace returns true I've run my app many times and have one test doc that I use each time I run via it being automatically reopened. Recently I created a couple new documents, then closed them before quitting and used the Delete button to dispose of them. Yet each time I run, all the supposedly deleted docs reappear. They're not being deleted from "/Users//Library/Containers//Data/Library/Autosave Information/". Why?
Topic: UI Frameworks SubTopic: AppKit Tags:
Replies
1
Boosts
0
Views
937
Activity
Nov ’22