TextView ja - Tai-Kimura/SwiftJsonUI GitHub Wiki

🇺🇸 English | 🇯🇵 日本語

TextView

class: SJUITextView
inherites: UITextView

TextView の属性

属性名 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

TextView のプロトコル

SJUITextViewDelegate

@objc public protocol SJUITextViewDelegate

UITextViewDelegateを超えた追加機能を持つSJUITextView用のデリゲートプロトコル。

func textViewDidChangeFrame(textView: SJUITextView)

テキストビューのフレームが変更されたときに呼び出されます。フレキシブル高テキストビューに特に役立ちます。

TextView のプロパティ

静的プロパティ

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!

プレースホルダーラベルの更新を管理するカスタムセッター付きのヒント/プレースホルダーテキスト。

TextView の関数

イニシャライザー

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メソッドの呼び出し
⚠️ **GitHub.com Fallback** ⚠️