| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697 |
- //
- // JCNicknameViewController.swift
- // JChat
- //
- // Created by deng on 2017/3/29.
- // Copyright © 2017年 HXHG. All rights reserved.
- //
- import UIKit
- import JMessage
- class JCNicknameViewController: UIViewController {
-
- var nickName = ""
- override func viewDidLoad() {
- super.viewDidLoad()
- _init()
- nicknameTextField.text = nickName
- var count = 20 - nickName.characters.count
- count = count < 0 ? 0 : count
- tipLabel.text = "\(count)"
- nicknameTextField.becomeFirstResponder()
- }
- private var topOffset: CGFloat {
- if isIPhoneX {
- return 88
- }
- return 64
- }
- fileprivate lazy var nicknameTextField: UITextField = {
- let nicknameTextField = UITextField(frame: CGRect(x: 0, y: self.topOffset, width: self.view.width, height: 45))
- nicknameTextField.backgroundColor = .white
- nicknameTextField.leftView = UIView(frame: CGRect(x: 0, y: 0, width: 15, height: 0))
- nicknameTextField.rightView = UIView(frame: CGRect(x: 0, y: 0, width: 27, height: 0))
- nicknameTextField.leftViewMode = .always
- nicknameTextField.rightViewMode = .always
- nicknameTextField.addTarget(self, action: #selector(textFieldDidChanged(_ :)), for: .editingChanged)
- return nicknameTextField
- }()
- fileprivate lazy var tipLabel: UILabel = {
- let tipLabel = UILabel(frame: CGRect(x: self.view.width - 15 - 28, y: self.topOffset + 21, width: 28, height: 12))
- tipLabel.text = "20"
- tipLabel.textColor = UIColor(netHex: 0x999999)
- tipLabel.font = UIFont.systemFont(ofSize: 12)
- tipLabel.textAlignment = .right
- return tipLabel
- }()
- private lazy var navRightButton: UIBarButtonItem = UIBarButtonItem(title: "保存", style: .plain, target: self, action: #selector(_saveNickname))
-
- //MARK: - private func
- private func _init() {
- self.title = "昵称"
- automaticallyAdjustsScrollViewInsets = false
- view.backgroundColor = UIColor(netHex: 0xe8edf3)
- _setupNavigation()
- view.addSubview(nicknameTextField)
- view.addSubview(tipLabel)
- }
-
- private func _setupNavigation() {
- navigationItem.rightBarButtonItem = navRightButton
- }
-
- func textFieldDidChanged(_ textField: UITextField) {
- // markedTextRange指的是当前高亮选中的,除了长按选中,用户中文输入拼音过程往往也是高亮选中状态
- if textField.markedTextRange == nil {
- let text = textField.text!
- if text.count > 20 {
- let range = text.startIndex ..< text.index(text.startIndex, offsetBy: 20)
-
- let subText = text.substring(with: range)
- textField.text = subText
- }
- let count = 20 - (textField.text?.count)!
- tipLabel.text = "\(count)"
- }
- }
-
- //MARK: - click func
- func _saveNickname() {
- nicknameTextField.resignFirstResponder()
- let nickname = nicknameTextField.text!
- JMSGUser.updateMyInfo(withParameter: nickname, userFieldType: .fieldsNickname) { (resultObject, error) -> Void in
- if error == nil {
- NotificationCenter.default.post(name: Notification.Name(rawValue: kUpdateUserInfo), object: nil)
- self.navigationController?.popViewController(animated: true)
- } else {
- print("error:\(String(describing: error?.localizedDescription))")
- }
- }
- }
- }
|