TextView ja - Tai-Kimura/SwiftJsonUI GitHub Wiki
class: SJUITextView
inherites: UITextView
| 属性名 | UIKit | SwiftUI | Compose | XML | jsonでの型 | 詳細 | 備考 |
|---|---|---|---|---|---|---|---|
| font | - | string | textFieldのフォント名。 | ||||
| fontSize | - | float | textFieldのフォントサイズ。 | ||||
| fontColor | - | string | textField.textColor。 | ||||
| hint | - | string | NSLocalizedString(hint, comment:"")がtextField.hintに設定されます。 | ||||
| hintFont | - | string | textFieldのヒントフォント名。 | ||||
| hintColor | - | string | ヒントのフォント色。 | ||||
| hideOnFocused | - | boolean | この属性がtrueでフォーカスされている場合、ヒントが非表示になります。 | ||||
| flexible | - | boolean | この属性がtrueの場合、frame.size.heightがminHeightとmaxHeightの間でコンテンツサイズに応じて変更されます。 | ||||
| containerInset | - | float array| string | textView.textContainerInset。 Float配列または「|」で区切られた文字列がtextView.textContainerInsetに設定されます。 配列のサイズが1の場合、すべての位置に同じ値が設定されます。 配列のサイズが2の場合、最初の値が上下に、2番目の値が左右に設定されます。 配列のサイズが3の場合、インデックスと位置は以下の通り: 0: 上 1: 左右 2: 下 配列のサイズが4の場合、インデックスと位置は以下の通り: 0: 上 1: 左 2: 下 3: 右 |
||||
| returnKeyType | - | string | textField.returnKeyType。デフォルトはUIReturnKeyType.done リストは以下の通り: Done: UIReturnKeyType.done Done: UIReturnKeyType.done Next: UIReturnKeyType.next Search: UIReturnKeyType.search Send: UIReturnKeyType.send Go: UIReturnKeyType.go Route: UIReturnKeyType.route Yahoo: UIReturnKeyType.yahoo Google: UIReturnKeyType.google |
@objc public protocol SJUITextViewDelegateUITextViewDelegateを超えた追加機能を持つSJUITextView用のデリゲートプロトコル。
func textViewDidChangeFrame(textView: SJUITextView)テキストビューのフレームが変更されたときに呼び出されます。フレキシブル高テキストビューに特に役立ちます。
open class var viewClass: SJUITextView.Typeこのプロパティは、createFromJSONメソッドでどのクラスをインフレートするかを決定するために使用されます。 SJUITextViewを継承するクラスを作成する際は、このプロパティでビューのクラスを定義する必要があります。
static var textColor: UIColorテキストビューのデフォルトテキスト色(デフォルト:black)。
public var maxHeight: CGFloatフレキシブルテキストビューの最大高制約(デフォルト:0、制限なしを意味)。
public var minHeight: CGFloatフレキシブルテキストビューの最小高制約(デフォルト:21.0)。
public var flexible: Boolテキストビューの高がコンテンツに応じて自動調整されるかどうか(デフォルト:false)。 trueの場合、コンテンツに基づいてminHeightとmaxHeightの間で高が変化します。
public var placeHolder: SJUILabel!テキストビューが空の場合に表示されるプレースホルダーラベル。自動的に管理されます。
public var hasContainer: Boolテキストビューがコンテナービューを持っているかどうか(デフォルト:false)。
public var fontSize: CGFloatテキストビューのフォントサイズ(デフォルト:12.0)。
public var hideOnFocused: Boolテキストビューがフォーカスを得たときにプレースホルダーを非表示にするかどうか(デフォルト:true)。
public var hintColor: UIColorヒント/プレースホルダーテキストの色。
public var hintFont: Stringヒント/プレースホルダーテキストのフォント名。
weak var sjuiDelegate: SJUITextViewDelegate?フレーム変更イベントやその他のSJUITextView固有のコールバックを処理するカスタムデリゲート。
override var text: String!自動プレースホルダー管理付きのテキストコンテンツ。テキストを設定するとプレースホルダーの表示が更新されます。
override var attributedText: NSAttributedString!自動プレースホルダー管理付きの属性付きテキストコンテンツ。
var hint: String!プレースホルダーラベルの更新を管理するカスタムセッター付きのヒント/プレースホルダーテキスト。
override init(frame: CGRect, textContainer: NSTextContainer?)
required init?(coder aDecoder: NSCoder)プレースホルダー機能と通知オブザーバーを設定するカスタムイニシャライザー。
public class func createFromJSON(attr: JSON, target: Any, views: inout [String: UIView]) -> SJUITextViewテキストビューがJSONファイルから作成される際に呼び出されるファクトリメソッド。
SJUITextViewクラスを継承するクラスを作成する際は、このメソッドをオーバーライドしてください。
func setPlaceHolderIfNeeded()現在のテキストコンテンツとフォーカス状態に基づいてプレースホルダーの表示を更新します。 テキストが変更されたりフォーカスが変更されたりしたときに自動的に呼び出されます。
override func draw(_ rect: CGRect)プレースホルダーのレンダリングとレイアウトを処理するカスタム描画実装。
override func observeValue(forKeyPath keyPath: String?, of object: Any?, change: [NSKeyValueChangeKey : Any]?, context: UnsafeMutableRawPointer?)フレキシブルテキストビューのコンテンツサイズ変更用のキー値監視ハンドラー。 フレーム調整とデリゲートコールバックをトリガーします。
@objc func textChanged()テキストコンテンツが変更されたときに呼び出される通知ハンドラー。 プレースホルダーの表示を更新し、バインディング更新をトリガーします。
@objc func textBeginEditing()テキスト編集が開始されたとき(ファーストレスポンダーになったとき)に呼び出される通知ハンドラー。 hideOnFocused設定に基づいてプレースホルダーの表示を管理します。
@objc func textEndEditing()テキスト編集が終了したとき(ファーストレスポンダーを辞めたとき)に呼び出される通知ハンドラー。 テキストが空の場合にプレースホルダーを復元します。
SJUITextViewはいくつかの自動機能を提供します:
- フレキシブル高: flexibleがtrueの場合、コンテンツに基づいて高を自動調整
- プレースホルダー管理: テキストコンテンツとフォーカスに基づいてプレースホルダーを表示/非表示
- コンテンツサイズ監視: レイアウト更新のためのコンテンツサイズ変更の監視
- 通知統合: テキスト変更通知の自動登録
- デリゲートコールバック: フレーム変更やその他のイベント用のsjuiDelegateメソッドの呼び出し