Post

Replies

Boosts

Views

Activity

Reply to Custom keyboard.
I had this exact same problem and finally found a complete fix. The issue is that iOS system edge gestures intercept your touches before they reach your keyboard buttons. The solution requires targeting three separate mechanisms simultaneously: here's the complete solution: https://gist.github.com/hamdiqbal/f642e2d73d58e76f65a76dc10b44e725 The three reasons most solutions fail: Only disabling delaysTouchesBegan — two other delay sources remain active Only calling setNeedsUpdateOfScreenEdgesDeferringSystemGestures() once — iOS resets this during view transitions Only fixing their own view — system gesture recognizers on parent views continue stealing touches After implementing all three parts together my keyboard edge keys respond instantly — as fast as the native iOS keyboard.
18h
Reply to Edge to edge custom keyboard on iPhone X in landscape orientation
This problem is caused by UIScreenEdgePanGestureRecognizer intercepting touches near screen edges. I found a complete solution: The fix has three parts that must all be implemented together. Partial implementations will not fully resolve the issue. here's the solution: https://gist.github.com/hamdiqbal/f642e2d73d58e76f65a76dc10b44e725 Key insight: you must call setNeedsUpdateOfScreenEdgesDeferringSystemGestures() in BOTH viewDidLoad and viewWillAppear. Most solutions only call it once which is why they fail after view transitions. Also critical: walk the full view hierarchy up to window level — system gesture recognizers are attached to parent views outside your keyboard's own view. Tested and working on iPhone X, 12, 13, 14 and 15 series on iOS 16, 17 and 18.
18h
Reply to Touch events responding is delayed when 3D touch is ON
I can confirm this problem exists and I have found a complete solution after extensive research. You are right that approximately 90% of App Store keyboard apps have this issue. The root cause is that UIScreenEdgePanGestureRecognizer — a system-level gesture recognizer — intercepts touches near screen edges before they reach the keyboard extension. The fix requires three things working together: Override preferredScreenEdgesDeferringSystemGestures to claim ownership of left and right edges Call setNeedsUpdateOfScreenEdgesDeferringSystemGestures() in BOTH viewDidLoad AND viewWillAppear — calling in only one place does not persist through view lifecycle transitions Walk the entire view hierarchy including parent views and window level, disabling delays on ALL gesture recognizers and specifically disabling UIScreenEdgePanGestureRecognizer here is the solution link: https://gist.github.com/hamdiqbal/f642e2d73d58e76f65a76dc10b44e725 This is a complete fix — not a workaround. Every edge key now registers instantly on iOS 16, 17 and 18,26.
Topic: UI Frameworks SubTopic: UIKit Tags:
18h
Reply to Custom keyboard extension left edge detecting touch after a second.
Hi, I faced this exact same problem while building my custom keyboard extension and after extensive research I finally found a complete solution that fixes it permanently. The root cause is that iOS system gestures own the screen edges by default and intercept your touches before they reach your keyboard. Three things must be fixed simultaneously — fixing only one or two will not work completely. the solution in here: https://gist.github.com/hamdiqbal/f642e2d73d58e76f65a76dc10b44e725 Why this works: preferredScreenEdgesDeferringSystemGestures tells iOS your keyboard owns the left and right edges Calling setNeedsUpdateOfScreenEdgesDeferringSystemGestures() in BOTH viewDidLoad and viewWillAppear is critical — one call alone is not enough because iOS resets edge ownership during transitions Walking the full view hierarchy catches system gesture recognizers attached to parent views outside your control Disabling all three delay properties (delaysTouchesBegan, delaysTouchesEnded, cancelsTouchesInView) removes every source of delay Specifically targeting and disabling UIScreenEdgePanGestureRecognizer removes the exact system gesture stealing your edge touches I tested this on iOS 16, 17 and 18 across iPhone 12, 13, 14 and 15 series. All edge keys now respond instantly with zero delay. Hope this helps everyone who has been struggling with this!
Topic: Programming Languages SubTopic: Swift Tags:
19h
Reply to Custom keyboard.
I had this exact same problem and finally found a complete fix. The issue is that iOS system edge gestures intercept your touches before they reach your keyboard buttons. The solution requires targeting three separate mechanisms simultaneously: here's the complete solution: https://gist.github.com/hamdiqbal/f642e2d73d58e76f65a76dc10b44e725 The three reasons most solutions fail: Only disabling delaysTouchesBegan — two other delay sources remain active Only calling setNeedsUpdateOfScreenEdgesDeferringSystemGestures() once — iOS resets this during view transitions Only fixing their own view — system gesture recognizers on parent views continue stealing touches After implementing all three parts together my keyboard edge keys respond instantly — as fast as the native iOS keyboard.
Replies
Boosts
Views
Activity
18h
Reply to Edge to edge custom keyboard on iPhone X in landscape orientation
This problem is caused by UIScreenEdgePanGestureRecognizer intercepting touches near screen edges. I found a complete solution: The fix has three parts that must all be implemented together. Partial implementations will not fully resolve the issue. here's the solution: https://gist.github.com/hamdiqbal/f642e2d73d58e76f65a76dc10b44e725 Key insight: you must call setNeedsUpdateOfScreenEdgesDeferringSystemGestures() in BOTH viewDidLoad and viewWillAppear. Most solutions only call it once which is why they fail after view transitions. Also critical: walk the full view hierarchy up to window level — system gesture recognizers are attached to parent views outside your keyboard's own view. Tested and working on iPhone X, 12, 13, 14 and 15 series on iOS 16, 17 and 18.
Replies
Boosts
Views
Activity
18h
Reply to Touch events responding is delayed when 3D touch is ON
I can confirm this problem exists and I have found a complete solution after extensive research. You are right that approximately 90% of App Store keyboard apps have this issue. The root cause is that UIScreenEdgePanGestureRecognizer — a system-level gesture recognizer — intercepts touches near screen edges before they reach the keyboard extension. The fix requires three things working together: Override preferredScreenEdgesDeferringSystemGestures to claim ownership of left and right edges Call setNeedsUpdateOfScreenEdgesDeferringSystemGestures() in BOTH viewDidLoad AND viewWillAppear — calling in only one place does not persist through view lifecycle transitions Walk the entire view hierarchy including parent views and window level, disabling delays on ALL gesture recognizers and specifically disabling UIScreenEdgePanGestureRecognizer here is the solution link: https://gist.github.com/hamdiqbal/f642e2d73d58e76f65a76dc10b44e725 This is a complete fix — not a workaround. Every edge key now registers instantly on iOS 16, 17 and 18,26.
Topic: UI Frameworks SubTopic: UIKit Tags:
Replies
Boosts
Views
Activity
18h
Reply to Custom keyboard extension left edge detecting touch after a second.
Hi, I faced this exact same problem while building my custom keyboard extension and after extensive research I finally found a complete solution that fixes it permanently. The root cause is that iOS system gestures own the screen edges by default and intercept your touches before they reach your keyboard. Three things must be fixed simultaneously — fixing only one or two will not work completely. the solution in here: https://gist.github.com/hamdiqbal/f642e2d73d58e76f65a76dc10b44e725 Why this works: preferredScreenEdgesDeferringSystemGestures tells iOS your keyboard owns the left and right edges Calling setNeedsUpdateOfScreenEdgesDeferringSystemGestures() in BOTH viewDidLoad and viewWillAppear is critical — one call alone is not enough because iOS resets edge ownership during transitions Walking the full view hierarchy catches system gesture recognizers attached to parent views outside your control Disabling all three delay properties (delaysTouchesBegan, delaysTouchesEnded, cancelsTouchesInView) removes every source of delay Specifically targeting and disabling UIScreenEdgePanGestureRecognizer removes the exact system gesture stealing your edge touches I tested this on iOS 16, 17 and 18 across iPhone 12, 13, 14 and 15 series. All edge keys now respond instantly with zero delay. Hope this helps everyone who has been struggling with this!
Topic: Programming Languages SubTopic: Swift Tags:
Replies
Boosts
Views
Activity
19h