iOS UI开发之UITextfield swift版本

作者: littleGG 发布时间: 2019-08-19 浏览: 2722 次 编辑

概述

  • UITextField在界面中显示可编辑文本区域的对象。

  • 您可以使用文本字段来使用屏幕键盘从用户收集基于文本的输入。键盘可以配置许多不同类型的输入,如纯文本,电子邮件,数字等等。文本字段使用目标操作机制和委托对象来报告在编辑过程中所做的更改。
    除了基本的文本编辑行为之外,还可以将叠加视图添加到文本字段以显示其他信息并提供其他可定位控件。您可以为诸如书签按钮或搜索图标等元素添加自定义叠加视图。文本字段提供内置的叠加视图来清除当前文本。自定义覆盖视图的使用是可选的。


属性

初始化

let textfield = UITextField.init(frame: CGRect.init(x: 0, y: 0, width: 80, height: 80));


设置占位文本

textfield.placeholder = "占位"


设置文本

textfield.text = "设置文本"


设置文本的颜色

textfield.textColor = UIColor.red;


设置文本字体


textfield.font = UIFont.systemFont(ofSize: 18.0)


设置文本对齐方式

textfield.textAlignment = .center


设置输入框是否可以编辑

textfield.isEnabled = true


设置输入框中的内容密码显示

textfield.isSecureTextEntry = true


设置边框样式

textfield.borderStyle = .roundedRect


设置键盘类型

textfield.keyboardType = .decimalPad

        

设置键盘返回类型


textfield.returnKeyType = .send


方法代理

UITextFieldDelegate

    @available(iOS 2.0, *)

    optional public func textFieldShouldBeginEditing(_ textField: UITextField) -> Bool // return NO to disallow editing.


    @available(iOS 2.0, *)

    optional public func textFieldDidBeginEditing(_ textField: UITextField// became first responder


    @available(iOS 2.0, *)

    optional public 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


    @available(iOS 2.0, *)

    optional public func textFieldDidEndEditing(_ textField: UITextField// may be called if forced even if shouldEndEditing returns NO (e.g. view removed from window) or endEditing:YES called


    @available(iOS 10.0, *)

    optional public func textFieldDidEndEditing(_ textField: UITextField, reason: UITextField.DidEndEditingReason// if implemented, called in place of textFieldDidEndEditing:


    

    @available(iOS 2.0, *)

    optional public func textField(_ textField: UITextField, shouldChangeCharactersIn range: NSRange, replacementString string: String) -> Bool // return NO to not change text


    

    @available(iOS 2.0, *)

    optional public func textFieldShouldClear(_ textField: UITextField) -> Bool // called when clear button pressed. return NO to ignore (no notifications)


    @available(iOS 2.0, *)

    optional public func textFieldShouldReturn(_ textField: UITextField) -> Bool // called when 'return' key pressed. return NO to ignore.


在文本字段成为第一响应者之前不久,编辑开始,并显示键盘(或其分配的输入视图)。编辑流程如下:

  • 在成为第一响应者之前,文本字段调用其委托的方法。使用该方法来允许或阻止编辑文本字段的内容。textFieldShouldBeginEditing:

  • 文本字段成为第一响应者。
    作为响应,系统显示键盘(或文本字段的输入视图),并根据需要发布通知。如果键盘或其他输入视图已经显示,则系统会改为通知和通知。UIKeyboardWillShowNotificationUIKeyboardDidShowNotificationUIKeyboardWillChangeFrameNotificationUIKeyboardDidChangeFrameNotification

  • 文本字段调用其委托的方法并发布通知。textFieldDidBeginEditing:UITextFieldTextDidBeginEditingNotification

  • 文本字段在编辑期间调用各种委托方法:
    每当当前的文本改变,它调用该方法并发布通知。textField:shouldChangeCharactersInRange:replacementString:UITextFieldTextDidChangeNotification
    当用户点击内置按钮清除文本时,它会调用该方法。textFieldShouldClear:
    它调用用户点击键盘的返回按钮时的方法。textFieldShouldReturn:

  • 在辞职作为第一响应者之前,文本字段调用其委托的方法。使用该方法来验证当前文本。textFieldShouldEndEditing:

  • 文本字段作为第一响应者辞职。
    作为响应,系统根据需要隐藏或调整键盘。当隐藏键盘时,系统发布和通知。UIKeyboardWillHideNotificationUIKeyboardDidHideNotification

  • 文本字段调用其委托的方法并发布通知。textFieldDidEndEditing:UITextFieldTextDidEndEditingNotification



标签: