Skip to content

Commit 6f30db2

Browse files
committed
Add tokenField(_:didDeleteText:atIndex:) to ICTokenFieldDelegate
1 parent e03af0d commit 6f30db2

2 files changed

Lines changed: 41 additions & 1 deletion

File tree

Example/Example/CustomizedTokenViewController.swift

Lines changed: 39 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -27,15 +27,21 @@
2727
import UIKit
2828
import ICInputAccessory
2929

30-
class CustomizedTokenViewController: UIViewController {
30+
class CustomizedTokenViewController: UIViewController, ICTokenFieldDelegate {
3131

3232
private let tokenField = CustomizedTokenField()
33+
private let textView = UITextView()
3334

3435
// MARK: - UIViewController
3536

3637
override func loadView() {
3738
super.loadView()
3839
view.backgroundColor = UIColor.whiteColor()
40+
textView.text = "[\n\n]";
41+
textView.font = UIFont.preferredFontForTextStyle(UIFontTextStyleSubheadline)
42+
textView.frame = view.bounds.insetBy(dx: 10, dy: 10)
43+
textView.autoresizingMask = [.FlexibleWidth, .FlexibleHeight]
44+
view.addSubview(textView)
3945
}
4046

4147
override func viewDidLoad() {
@@ -49,6 +55,7 @@ class CustomizedTokenViewController: UIViewController {
4955
navigationItem.rightBarButtonItem = cancelBarButton
5056

5157
navigationItem.titleView = tokenField
58+
tokenField.delegate = self
5259
}
5360

5461
override func viewWillAppear(animated: Bool) {
@@ -59,6 +66,31 @@ class CustomizedTokenViewController: UIViewController {
5966
override func viewWillDisappear(animated: Bool) {
6067
super.viewWillAppear(animated)
6168
tokenField.resignFirstResponder()
69+
textView.endEditing(true)
70+
}
71+
72+
// MARK: - ICTokenFieldDelegate
73+
74+
func tokenFieldDidBeginEditing(tokenField: ICTokenField) {
75+
print(__FUNCTION__)
76+
}
77+
78+
func tokenFieldDidEndEditing(tokenField: ICTokenField) {
79+
print(__FUNCTION__)
80+
}
81+
82+
func tokenFieldWillReturn(tokenField: ICTokenField) {
83+
print(__FUNCTION__)
84+
}
85+
86+
func tokenField(tokenField: ICTokenField, didEnterText text: String) {
87+
print("Add: \"\(text)\"")
88+
updateTexts()
89+
}
90+
91+
func tokenField(tokenField: ICTokenField, didDeleteText text: String, atIndex index: Int) {
92+
print("Delete: \"\(text)\"")
93+
updateTexts()
6294
}
6395

6496
// MARK: - UIResponder Callbacks
@@ -67,4 +99,10 @@ class CustomizedTokenViewController: UIViewController {
6799
presentingViewController?.dismissViewControllerAnimated(true, completion: nil)
68100
}
69101

102+
// MARK: - Private Methods
103+
104+
private func updateTexts() {
105+
textView.text = "[\n " + tokenField.texts.map { "\"" + $0 + "\"" } .joinWithSeparator(",\n ") + "\n]"
106+
}
107+
70108
}

Source/ICTokenField.swift

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,7 @@ public protocol ICTokenFieldDelegate: class {
3131
func tokenFieldDidEndEditing(tokenField: ICTokenField)
3232
func tokenFieldWillReturn(tokenField: ICTokenField)
3333
func tokenField(tokenField: ICTokenField, didEnterText text: String)
34+
func tokenField(tokenField: ICTokenField, didDeleteText text: String, atIndex index: Int)
3435
}
3536

3637
////////////////////////////////////////////////////////////////////////////////
@@ -319,6 +320,7 @@ public class ICTokenField: UIView, UITextFieldDelegate, ICBackspaceTextFieldDele
319320
layoutTokenTextField()
320321
togglePlaceholderIfNeeded()
321322
inputTextField.showsCursor = true
323+
delegate?.tokenField(self, didDeleteText: token.text, atIndex: index)
322324
return true
323325
}
324326
}

0 commit comments

Comments
 (0)