İçeriğe geç

UIKeyboard frame değeri almak

Merhabalar bu yazımda İOS uygulamalarınızda işinize yarayacak bir değer olan klavye yüksekliğini anlık olarak nasıl elde ederiz bunu göstereceğim.

Bazı durumlarda aldığımız inputlar cihaz klavyesinin altında kalabilir. Bu gibi durumlarda cihaz klavye boyutuna göre işlem yapma ihtiyacı ortaya çıkar. Bunun için klavye observe işleminin içerisinde direkt olarak klavye frame değerlerini elde edebiliriz.

Bununla birlikte sizlere cihaz klavyesinin tetiklendiği durumlarda aktif olan observe nasıl yazılır bunuda göstereceğim.

        let notificationCenter = NotificationCenter.default
        notificationCenter.addObserver(self, selector: #selector(keyboardHide), name: Notification.Name.UIKeyboardWillHide, object: nil) // Klavye görünmez olunca tetiklenir
        notificationCenter.addObserver(self, selector: #selector(keyboardShow(notification:)), name: Notification.Name.UIKeyboardDidShow, object: nil) // Klavye açılınca tetiklenir

Observe işleminden sonra tetiklenecek fonksiyonlar içerisinde kodlarımızı yazabiliriz.

  @objc func keyboardShow(notification:Notification) {
        
        let userInfo:NSDictionary = notification.userInfo! as NSDictionary
        let keyboardFrame:NSValue = userInfo.value(forKey: UIKeyboardFrameEndUserInfoKey) as! NSValue
        let keyboardRectangle = keyboardFrame.cgRectValue
        
        let keyboardHeight = keyboardRectangle.height
        let keyboardWidth = keyboardRectangle.width
    }

    @objc func keyboardHide() {
        
        // code
    }

Not: Sınıf yok edicileri (deinit) üzerinde ve ileri geri segue işlemlerinde sorun yaşamamak için viewDidDisappear üzerinde observe işlemlerini silmeyi unutmayın aksi halde uygulama kapanma sorunları oluşabilir.

Tarih:iOS

Bu yazı yorumlara kapalı.

Copyright © 2021 Kenan Atmaca