Skip to content

Commit 10fb683

Browse files
committed
Added SPTextView.
1 parent 6d919df commit 10fb683

File tree

2 files changed

+66
-0
lines changed

2 files changed

+66
-0
lines changed
Lines changed: 66 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,66 @@
1+
// The MIT License (MIT)
2+
// Copyright © 2020 Ivan Vorobei (hello@ivanvorobei.by)
3+
//
4+
// Permission is hereby granted, free of charge, to any person obtaining a copy
5+
// of this software and associated documentation files (the "Software"), to deal
6+
// in the Software without restriction, including without limitation the rights
7+
// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
8+
// copies of the Software, and to permit persons to whom the Software is
9+
// furnished to do so, subject to the following conditions:
10+
//
11+
// The above copyright notice and this permission notice shall be included in all
12+
// copies or substantial portions of the Software.
13+
//
14+
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
15+
// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
16+
// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
17+
// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
18+
// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
19+
// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
20+
// SOFTWARE.
21+
22+
#if canImport(UIKit) && (os(iOS) || os(tvOS))
23+
import UIKit
24+
25+
/**
26+
SparrowKit: Basic Text View class.
27+
28+
It has one shared init `commonInit` which call for all default inits.
29+
*/
30+
open class SPTextView: UITextView {
31+
32+
weak var actionsDelegate: SPTextViewActionsDelegate?
33+
34+
// MARK: - Init
35+
36+
public init() {
37+
super.init(frame: .zero, textContainer: nil)
38+
commonInit()
39+
}
40+
41+
public required init?(coder aDecoder: NSCoder) {
42+
super.init(coder: aDecoder)
43+
commonInit()
44+
}
45+
46+
/**
47+
SparrowKit: Wrapper of init.
48+
Called in each init and using for configuration.
49+
50+
No need ovveride init. Using one function for configurate view.
51+
*/
52+
open func commonInit() {}
53+
54+
// MARK: - Ovveride
55+
56+
open override func deleteBackward() {
57+
super.deleteBackward()
58+
actionsDelegate?.didPressBackward?()
59+
}
60+
}
61+
62+
@objc public protocol SPTextViewActionsDelegate: AnyObject {
63+
64+
@objc optional func didPressBackward()
65+
}
66+
#endif

0 commit comments

Comments
 (0)