Skip to content

Add keyboard adjustment additional insets#614

Open
robmaceachern wants to merge 10 commits into
mainfrom
robmaceachern/keyboard-adjustment-insets
Open

Add keyboard adjustment additional insets#614
robmaceachern wants to merge 10 commits into
mainfrom
robmaceachern/keyboard-adjustment-insets

Conversation

@robmaceachern
Copy link
Copy Markdown
Member

@robmaceachern robmaceachern commented May 14, 2026

Adds Listable support for keyboard avoidance when persistent overlay UI, such as a floating bottom action bar, occupies part of the keyboard-adjusted viewport.

Key changes:

  • Adds Behavior.keyboardAdjustmentAdditionalInsets, applied only while the keyboard overlaps the list, so clients can reserve overlay space without replacing Listable's keyboard inset calculation.
  • Folds those additional insets into the content and scroll indicator inset calculation used for first-responder visibility.
  • Relayouts synchronously when keyboard-driven adjusted insets change, keeping visible layout attributes aligned before UIKit auto-scrolls the focused input.
  • Promotes UIKit's non-animated first-responder scrollRectToVisible call to an animated scroll only during keyboard frame transitions.
  • Tracks UITextView editing notifications for supplementary first-responder retention, matching existing UITextField behavior.
  • Adds unit coverage, README/changelog documentation, and a development demo for a text area behind a floating bottom overlay.

Validation

  • xcodebuild test -workspace Development/ListableDevelopment.xcworkspace -scheme ListableDevelopment-Workspace -destination 'platform=iOS Simulator,name=iPhone 16 Pro,OS=18.1'
  • git diff --check

Checklist

Please do the following before merging:

  • Ensure any public-facing changes are reflected in the changelog. Include them in the Main section.

This description was drafted with AI assistance.

@robmaceachern robmaceachern marked this pull request as ready for review May 20, 2026 20:33
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant