2015-01-30 35 views
6

geri geliyorsa Klavye renk değiştirir koyu olarak TextField keyboardAppearance iOS 8, iPad'inizde Home tuşuna basın ve çoğaltmak için

  • çalıştırın iPad'de uygulaması (cihaz veya simülatör)
  • Dokunmatik klavyeyi ekrana getirmek için TextField
  • (karanlık) Home'a ​​basın, ardından uygulamaya geri dönün
  • Klavyenin rengini değiştirir (beyaz). Muhtemelen klavye rengi arka plana uyacak şekilde değişir. Ancak bu durumda bazı tuşlar karanlık kalır, bu yüzden iOS'ta bir hata gibi görünüyor (ekli ekran görüntüsüne bakınız).

    Bu konuda herhangi bir ışık tutmaya değer mi? Klavyeyi gizlemeyi ve yeniden göstermeyi içeren bir geçici çözüm kullanıyoruz, ancak bu ideal değil.

    enter image description here

  • +0

    ve viewWillAppear' 'üzerinde' [textField reloadInputViews] 'deneyin klavyeyi tekrar gösterilen: Sen görünümü denetleyicisine UITextFields temsilci ayarlamanız gerekir – Fennelouski

    cevap

    0

    Bu kod Home düğmesine basıldığında klavyeyi kapatmak ve ne zaman uygulama yeniden başlar onu geri getirebilir.

    class ViewController: UIViewController, UITextFieldDelegate { 
    
    private var _textField: UITextField! 
    private var _isFirstResponder: Bool! 
    
    override func viewDidLoad() { 
        super.viewDidLoad() 
        // Do any additional setup after loading the view, typically from a nib. 
    
        NSNotificationCenter.defaultCenter().addObserver(self, 
         selector: "didBecomeActiveNotification:", name: UIApplicationDidBecomeActiveNotification, object: nil) 
    
        NSNotificationCenter.defaultCenter().addObserver(self, 
         selector: "willResignActiveNotification:", name: UIApplicationWillResignActiveNotification, object: nil) 
    
    } 
    
    deinit { 
        NSNotificationCenter.defaultCenter().removeObserver(self) 
    } 
    
    override func didReceiveMemoryWarning() { 
        super.didReceiveMemoryWarning() 
        // Dispose of any resources that can be recreated. 
    } 
    
    func didBecomeActiveNotification(nofication: NSNotification) { 
        if _isFirstResponder? == true { 
         _textField?.becomeFirstResponder() 
        } 
    } 
    
    func willResignActiveNotification(nofication: NSNotification) { 
        if _textField?.isFirstResponder() == true { 
         _isFirstResponder = true 
         _textField?.resignFirstResponder() 
        } else { 
         _isFirstResponder = false 
        } 
    } 
    
    func textFieldShouldBeginEditing(textField: UITextField) -> Bool { 
        _textField = textField 
        return true 
    } 
    
    } 
    
    yerine saklandığı yerden