Adding UITextField on UIView Programmatically Swift

前端 未结 9 1275
不知归路
不知归路 2021-01-30 06:42

I\'m new to Swift and iOS programming. I was trying to create a UITextField programmatically using Swift but couldn\'t get it quite right. Also how do you change it

9条回答
  •  清歌不尽
    2021-01-30 07:41

    Swift 3 & Swift 4.2:

    override func viewDidLoad() {
        super.viewDidLoad()
    
        let sampleTextField =  UITextField(frame: CGRect(x: 20, y: 100, width: 300, height: 40))
        sampleTextField.placeholder = "Enter text here"
        sampleTextField.font = UIFont.systemFont(ofSize: 15)
        sampleTextField.borderStyle = UITextField.BorderStyle.roundedRect
        sampleTextField.autocorrectionType = UITextAutocorrectionType.no
        sampleTextField.keyboardType = UIKeyboardType.default
        sampleTextField.returnKeyType = UIReturnKeyType.done
        sampleTextField.clearButtonMode = UITextField.ViewMode.whileEditing
        sampleTextField.contentVerticalAlignment = UIControl.ContentVerticalAlignment.center
        sampleTextField.delegate = self
        self.view.addSubview(sampleTextField)
    }
    

    Delegate Methods:

    // MARK:- ---> UITextFieldDelegate
    
    extension ViewController: UITextFieldDelegate {
    
        func textFieldShouldBeginEditing(_ textField: UITextField) -> Bool {
            // return NO to disallow editing.
            print("TextField should begin editing method called")
            return true
        }
    
        func textFieldDidBeginEditing(_ textField: UITextField) {
            // became first responder
            print("TextField did begin editing method called")
        }
    
        func textFieldShouldEndEditing(_ textField: UITextField) -> Bool {
            // return YES to allow editing to stop and to resign first responder status. NO to disallow the editing session to end
            print("TextField should snd editing method called")
            return true
        }
    
        func textFieldDidEndEditing(_ textField: UITextField) {
            // may be called if forced even if shouldEndEditing returns NO (e.g. view removed from window) or endEditing:YES called
            print("TextField did end editing method called")
        }
    
        func textFieldDidEndEditing(_ textField: UITextField, reason: UITextFieldDidEndEditingReason) {
            // if implemented, called in place of textFieldDidEndEditing:
            print("TextField did end editing with reason method called")
        }
    
        func textField(_ textField: UITextField, shouldChangeCharactersIn range: NSRange, replacementString string: String) -> Bool {
            // return NO to not change text
            print("While entering the characters this method gets called")
            return true
        }
    
        func textFieldShouldClear(_ textField: UITextField) -> Bool {
            // called when clear button pressed. return NO to ignore (no notifications)
            print("TextField should clear method called")
            return true
        }
    
        func textFieldShouldReturn(_ textField: UITextField) -> Bool {
            // called when 'return' key pressed. return NO to ignore.
            print("TextField should return method called")
            // may be useful: textField.resignFirstResponder()
            return true
        }
    
    }
    
    // MARK: UITextFieldDelegate <---
    

    Swift 2.0:

    let sampleTextField = UITextField(frame: CGRectMake(20, 100, 300, 40))
    sampleTextField.placeholder = "Enter text here"
    sampleTextField.font = UIFont.systemFontOfSize(15)
    sampleTextField.borderStyle = UITextBorderStyle.RoundedRect
    sampleTextField.autocorrectionType = UITextAutocorrectionType.No
    sampleTextField.keyboardType = UIKeyboardType.Default
    sampleTextField.returnKeyType = UIReturnKeyType.Done
    sampleTextField.clearButtonMode = UITextFieldViewMode.WhileEditing;
    sampleTextField.contentVerticalAlignment = UIControlContentVerticalAlignment.Center
    sampleTextField.delegate = self
    self.view.addSubview(sampleTextField)
    

    Delegate Methods:

        // MARK:- ---> Textfield Delegates
        func textFieldDidBeginEditing(textField: UITextField) {
            print("TextField did begin editing method called")
        }
    
        func textFieldDidEndEditing(textField: UITextField) {
            print("TextField did end editing method called")
        }
    
        func textFieldShouldBeginEditing(textField: UITextField) -> Bool {
            print("TextField should begin editing method called")
            return true;
        }
    
        func textFieldShouldClear(textField: UITextField) -> Bool {
            print("TextField should clear method called")
            return true;
        }
    
        func textFieldShouldEndEditing(textField: UITextField) -> Bool {
            print("TextField should snd editing method called")
            return true;
        }
    
        func textField(textField: UITextField, shouldChangeCharactersInRange range: NSRange, replacementString string: String) -> Bool {
            print("While entering the characters this method gets called")
            return true;
        }
    
        func textFieldShouldReturn(textField: UITextField) -> Bool {
            print("TextField should return method called")
            textField.resignFirstResponder();
            return true;
        }
        // MARK: Textfield Delegates <---
    

提交回复
热议问题