Custom input views become gray during their dismissal animation

Originator:daniel
Number:rdar://FB12661555 Date Originated:2023-07-18
Status:Fixed Resolved:
Product:Simulator Product Version:15.0 (1009)
Classification: Reproducible:always
 
In the iOS 17 simulator, when a UITextField has a custom keypad (non-nil inputView) and resigns first responder, all of the input view's contents are replaced by solid gray for the duration of the dismissal animation. This can be reproduced on an iOS 17 simulator as installed by Xcode 15 beta 4 (Simulator 15.0 (1009)), no matter whether the app was compiled with Xcode 14.3.1 or Xcode 15 beta 4. It can neither be reproduced on an iOS 16.4 simulator, nor on an iPhone 12 Pro running iOS 16.5.1 (c). I unfortunately can't test on a phone running iOS 17 because I don't have a spare right now. I've attached both a screen recording showing the behavior, and a very simple demo.

class ViewController: UIViewController {
    @IBOutlet weak var textField: UITextField!

    override func viewDidLoad() {
        super.viewDidLoad()

        let keypad = UIInputView(
            frame: CGRect(x: 0, y: 0, width: view.frame.width, height: 250),
            inputViewStyle: .keyboard
        )
        keypad.backgroundColor = .systemBlue
        textField.inputView = keypad
    }

    @IBAction func onDismiss(_ sender: UIButton) {
        textField.resignFirstResponder()
    }
}

Comments

Fixed in Xcode 15 beta 8


Please note: Reports posted here will not necessarily be seen by Apple. All problems should be submitted at bugreport.apple.com before they are posted here. Please only post information for Radars that you have filed yourself, and please do not include Apple confidential information in your posts. Thank you!