1

In Android Keyboard controls are in built,
But Ios Swift, really dono why we need so much to code.

I wannu implement following all together :
* Dismiss keyboard on tapping elsewhere
* Move View abv wen TextField is behind keyboard
* Implement Next feature, if next text field is available

I tried as below, which is not working :

extension UIViewController : UITextFieldDelegate
{
    var VydTxtBoxVar: UITextField {get{return self.VydTxtBoxVar} set{}}
    var ChkKeyPadDspVar: Bool {get{return self.ChkKeyPadDspVar} set{}}
    var KeyPadHytVal: CGFloat {get{return self.KeyPadHytVal} set{}}

    public func StrWenviewWillAppear()
    {
        NSNotificationCenter.defaultCenter().addObserver(self,
                                                         selector: #selector(TdoWenKeyPadVyd(_:)),
                                                         name:UIKeyboardWillShowNotification,
                                                         object: nil);
        NSNotificationCenter.defaultCenter().addObserver(self,
                                                         selector: #selector(TdoWenKeyPadHyd(_:)),
                                                         name:UIKeyboardWillHideNotification,
                                                         object: nil);
    }

    public func textFieldDidBeginEditing(TxtBoxPsgVar: UITextField)
    {
        self.VydTxtBoxVar = TxtBoxPsgVar
    }

    public func textFieldDidEndEditing(TxtBoxPsgVar: UITextField)
    {
        self.VydTxtBoxVar = UITextField()
    }

    public func textFieldShouldReturn(TxtBoxPsgVar: UITextField) -> Bool
    {
        self.VydTxtBoxVar.resignFirstResponder()
        return true
    }

    override public func touchesBegan(touches: Set<UITouch>, withEvent event: UIEvent?)
    {
        view.endEditing(true)
        super.touchesBegan(touches, withEvent: event)
    }

    public func TdoWenKeyPadVyd(NfnPsgVar: NSNotification)
    {
        if(!self.ChkKeyPadDspVar)
        {
            self.KeyPadHytVal = ((NfnPsgVar.userInfo?[UIKeyboardFrameBeginUserInfoKey] as? NSValue)?.CGRectValue().height)!

            var NonKeyPadAraVar: CGRect = self.view.frame
            NonKeyPadAraVar.size.height -= self.KeyPadHytVal

            let VydTxtBoxCenVal: CGPoint? = VydTxtBoxVar.frame.origin

            if (!CGRectContainsPoint(NonKeyPadAraVar, VydTxtBoxCenVal!))
            {
                self.ChkKeyPadDspVar = true
                UIView.animateWithDuration(1.0,
                                           animations:
                    { self.view.frame.origin.y -= (self.KeyPadHytVal)},
                                           completion: nil)
            }
            else
            {
                self.ChkKeyPadDspVar = false
            }
        }

    }

    public func TdoWenKeyPadHyd(NfnPsgVar: NSNotification)
    {
        if (self.ChkKeyPadDspVar)
        {
            self.ChkKeyPadDspVar = false
            UIView.animateWithDuration(1.0,
                                       animations:
                { self.view.frame.origin.y += (self.KeyPadHytVal)},
                                       completion: nil)
        }
    }

    public func StpWenviewDidDisappear()
    {
        NSNotificationCenter.defaultCenter().removeObserver(self)
        view.endEditing(true)
        ChkKeyPadDspVar = false
    }
}
Sujay U N
  • 4,974
  • 11
  • 52
  • 88

0 Answers0