passforios/pass/LabelTableViewCell.swift

76 lines
1.9 KiB
Swift
Raw Normal View History

2017-02-02 21:04:31 +08:00
//
// LabelTableViewCell.swift
// pass
//
// Created by Mingshen Sun on 2/2/2017.
// Copyright © 2017 Bob Sun. All rights reserved.
//
import UIKit
2017-02-05 13:56:37 +08:00
struct LabelTableViewCellData {
var title: String
var content: String
}
2017-02-02 21:04:31 +08:00
class LabelTableViewCell: UITableViewCell {
@IBOutlet weak var contentLabel: UILabel!
@IBOutlet weak var titleLabel: UILabel!
2017-02-05 13:56:37 +08:00
var isPasswordCell = false
var isReveal = false
let passwordDots = "••••••••••••"
2017-02-05 13:56:37 +08:00
var cellData: LabelTableViewCellData? {
didSet {
titleLabel.text = cellData?.title
if isPasswordCell {
contentLabel.text = passwordDots
} else {
contentLabel.text = cellData?.content
}
2017-02-05 13:56:37 +08:00
}
}
2017-02-02 21:04:31 +08:00
2017-02-05 00:35:23 +08:00
override var canBecomeFirstResponder: Bool {
get {
return true
}
}
2017-02-02 21:04:31 +08:00
override func awakeFromNib() {
super.awakeFromNib()
}
override func setSelected(_ selected: Bool, animated: Bool) {
super.setSelected(selected, animated: animated)
}
2017-02-05 00:35:23 +08:00
override func canPerformAction(_ action: Selector, withSender sender: Any?) -> Bool {
if isPasswordCell {
if isReveal {
return action == #selector(copy(_:)) || action == #selector(LabelTableViewCell.concealPassword(_:))
} else {
return action == #selector(copy(_:)) || action == #selector(LabelTableViewCell.revealPassword(_:))
}
}
2017-02-05 00:35:23 +08:00
return action == #selector(copy(_:))
}
2017-02-05 00:35:23 +08:00
override func copy(_ sender: Any?) {
UIPasteboard.general.string = contentLabel.text
}
2017-02-02 21:04:31 +08:00
func revealPassword(_ sender: Any?) {
contentLabel.text = cellData?.content
isReveal = true
}
func concealPassword(_ sender: Any?) {
contentLabel.text = passwordDots
isReveal = false
}
2017-02-02 21:04:31 +08:00
}