Hello Apple Developer Community,
I am developing Keyboard Atelier, a Korean custom keyboard built with Swift, UIKit, and UIInputViewController.
Is there a supported way to apply a user-selected background color or image across the entire keyboard presentation, including the surrounding system-owned areas?
Problem
On an iPhone, we observe a strip above our keyboard extension’s visible content and a separate bottom area containing the system globe and dictation controls.
When we apply a custom background to our extension, these surrounding areas retain a different background. This makes our keyboard look like a rectangular panel placed inside a separate system frame.
Our product lets users customize keycaps and keyboard backgrounds. We want their selected color or image to appear continuous across the entire keyboard presentation.
What we have tested
We compared an opaque white root-view background with a clear root-view background in an isolated simulator test.
With the opaque background, the boundaries above and below the extension were visible. Removing our own top padding did not eliminate the upper strip.
Setting the root view’s backgroundColor to UIColor.clear made the backgrounds appear visually continuous in both light and dark appearances. However, this only reveals the default system background. It does not Questions
- Is there a public API or supported configuration that lets a custom keyboard specify the background
color of the surrounding system-owned areas?
- Can a custom keyboard supply a background image that extends into those areas, including beneath the
system globe and dictation controls?
- If neither is supported, what is the documented boundary of background customization for a keyboard
extension? Is Feedback Assistant the appropriate place to request this capability?
iOS should retain control of the system buttons, including their behavior, accessibility, touch targets, and contrast adjustments. We are asking to customize the background behind them while preserving their functionality.
The solution must be suitable for App Store distribution and work when the keyboard is used in other apps, without requiring changes to those host apps.
Reproduction steps
- Enable the custom keyboard in Settings > General > Keyboard > Keyboards.
- Open a UITextView in the containing app.
- Switch to the custom keyboard.
- Set the keyboard extension’s root-view background to an opaque white color while using dark appearance.
- Observe the different backgrounds above and below the extension’s content.
- Compare this with a build using UIColor.clear for the root-view background.
Implementation
- Swift and UIKit
- UIInputViewController keyboard extension
- Test host: a UIKit UITextView in the containing app
- Light and dark appearances tested
- RequestsOpenAccess = false
Please point me to any relevant API or documentation, or clarify whether this would require a new API.
Thank you.