Is there a way to make UITextField activate when double-tapped? Single-tapping makes it a little too easy to do something calamitous in my app.
Post
Replies
Boosts
Views
Activity
My app needs to recognize screen gestures the hard way. I have working code for flick recognition (a combination of distance, direction, and velocity), but it's not as reliable as whatever Apple uses. Does anyone know exactly what defines a flick in iOS?
There is some new UI in Xcode for upgrading OS versions. I clicked the new Get button at the top of the screen. It went and got the new iOS 17.4. Great, but it is just sitting there. After much floundering around, I eventually found the UI that has the Install button. Clicked it. Nothing happens. I have restarted Xcode several times, went looking for an Xcode update, no joy. My development is now dead for two days. Really not happy.
I have a Swift project with some C code in it. The C code creates a byte array with about 600K elements. Compiling under Xcode, the compilation takes a really long time. When I try to run the code, it fails immediately upon startup. When I cut this large array out of the build, everything else works fine. Does anyone know what's going on here, and what I might do about it?
My iOS app has a custom keyboard. I recently changed the backspace key glyph from ⬅️ to ⌫. The character is blue. All keys on the keyboard are created by the same code, and no other character does this. I looked around on the web, found several complaints about blue backgrounds for things like backspace and shift keys, but nothing about the character itself being blue. The character does not appear blue when I paste it into text. Does anyone have a clue?
There is a new Integrate menu in XCode. Does anyone know how to use it? I stage my changes. Then I try to commit and can't make it do anything. I have looked for docs on this, found nothing useful. What's the process?
You know how XCode shows your compile errors in real time with the red ribbons to the right of the code? Now they are not there. Or they might appear occasionally after a deliberate build, but then they disappear after a few seconds, or after I click on anything. I can't write code like this. Yes, I have restarted. Didn't help. Is there some new configuration I have to set?
NSMutableAttributedString does strange things with 𝛑 and 𝒆. This is Unicode "Mathematical Bold Small Pi" and the 𝒆 that is near it in the Unicode table. Less exotic characters don't have this problem.
Changing the attribute map of an existing NSMutableAttributedString containing these characters with some foreground colors (like white, for instance) results in a strange doubling of the character when the resulting string is rendered in a CATextLayer. It doesn't happen if the NSMutableAttributedString is created with the different map. It only happens when you use #setAttributes on an existing string.
Displaying an NSMutableAttributedString containing these characters with various colors applied in a UITextField results in the strange doubling regardless of the colors involved. Furthermore, attribute ranges are thrown off by this.
In iPadOS, I'm building a tree on the screen using CALayer subclasses. Touching a visible node on the screen selects the node using CALayer.hitTest(CGPoint). This works reliably when I arrange the layers like this:
But when I rearrange the same CALayer objects to look like this, after an unpredictable number of touches on the a*b composite structure, the app dies with EXC_BAD_ACCESS:
Here is my code at the point of death. The LOOK HERE print statement just before invoking hitTest verifies that both layer and ksCGPoint have reasonable values.
Here is the stack trace:
Here is where the code actually dies in computeZ, which is called by CALayer.hitTest, which is invoked by VNode.touchesBegan, where VNode is a subclass of UIView.
Does anyone know what's going on here, or how to fix it?
I am moving layers around using UIView.animate(withDuration:,animations:,completion:). The animation works as it is supposed to, but changing the duration parameter doesn't change the duration. It always goes at the same speed. What might I be doing wrong? Is there some global thing I have to turn on for this to work?
I imported an external project into my project by dragging its project file into mine. It didn't work. Now those files show up whenever I check something in. I don't want them and I never select them at checkin, but how do I get rid of them? I don't find them in the underlying file system, and I haven't found any controls that will get rid of them. They appear in the source control navigator under the changes tab as Local Changes.
I need to specify certain strings in my RTF documents as non-breaking, but haven't found a way to do this. Any suggestions?
I have a newer iPad and an older iPad2. My app is written in Swift and compiled for 9.3.5, which is the OS installed on the older iPad2. ***My app runs fine in the simulator and on the newer iPad.*** On the older iPad2, a lot of mundane things work in the app, but it crashes with errors that are only semi-repeatable when I ask it to do its real work. The problem seems to have something to do with an object being garbage collected before it should be, but I am not sure that is really the problem, as the debugger sometimes gives other death messages that are completely different. Any ideas on this?
I use UITextView to display rtf text loaded from a file. The text has links in it. Tapping a link opens the correct page in Safari. Then I go back to my app. When I tap another link, or even the same one, nothing happens. Is there some kind of reset that I have to invoke on UITextView to make this behave correctly?
My app is configured for iOS 9.3.5. It runs fine on newer versions of iOS. But when I run it on an actual 9.3.5 device (iPad2 from 2011) it crashes with memory management issues.
In particular, when a specific class is instantiated, the allocation is visible in the stack trace and the init runs. But as soon as I put anything into its instance variables, the deinit runs on that instance and the app crashes.
I put a print statement at the start of the init method. That executes just fine. The next line is where value initializations begin, and that is where the deinit is invoked behind my back. I don't know why it would do this. Do you?