TextField ja - Tai-Kimura/SwiftJsonUI GitHub Wiki
TextField
class: SJUITextField inherites: UITextField
TextField の属性
| 属性名 | 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のヒントフォント名。 | |
| hintFontSize | ✅ | ✅ | ❌ | ❌ | float | textFieldのヒントフォントサイズ。 | |
| hintColor | ✅ | ✅ | ✅ | ✅ | string | ヒントのフォント色。 | |
| fieldPadding | ✅ | ✅ | ❌ | ❌ | float | textFieldの右側の内部スペース。 | |
| textAlign | ✅ | ✅ | ✅ | ✅ | string | textField.textAlignmentとtextField.contentHorizontalAlignment。リストは以下の通り:Left: NSTextAlignment.leftRight: NSTextAlignment.rightCenter: NSTextAlignment.center | |
| borderStyle | ✅ | ✅ | ❌ | ❌ | string | textField.borderStyle。デフォルトはUITextBorderStyle.none。リストは以下の通り:RoundedRect: UITextBorderStyle.roundedRectLine: UITextBorderStyle.lineBezel: UITextBorderStyle.bezel | |
| input | ✅ | ✅ | ✅ | ✅ | string | textField.keyboardType。デフォルトはシステムデフォルト。この属性が「password」の場合、textField.isSecureTextEntryがtrueに設定されます。この属性が「number」または「password」の場合、いくつかの追加属性が利用可能です。リストは以下の通り:alphabet: UIKeyboardType.alphabetemail: UIKeyboardType.emailAddresspassword: UIKeyboardType.asciiCapablenumber: UIKeyboardType.numberPaddecimal: UIKeyboardType.numberPad | |
| returnKeyType | ✅ | ✅ | ✅ | ✅ | string | textField.returnKeyType。デフォルトはUIReturnKeyType.doneリストは以下の通り:Done: UIReturnKeyType.doneDone: UIReturnKeyType.doneNext: UIReturnKeyType.nextSearch: UIReturnKeyType.searchSend: UIReturnKeyType.sendGo: UIReturnKeyType.goRoute: UIReturnKeyType.routeYahoo: UIReturnKeyType.yahooGoogle: UIReturnKeyType.google | |
| onTextChange | ✅ | ✅ | ✅ | ❌ | string | この属性でUIControlEvents.editingChangedイベントを定義できます。この属性で作成されたSelectorがイベントに設定されます。 |
入力タイプ「number」と「decimal」の属性
| 属性名 | UIKit | SwiftUI | Compose | XML | jsonでの型 | 詳細 | 備考 |
|---|---|---|---|---|---|---|---|
| secure | ✅ | ✅ | ✅ | ✅ | boolean | textField.isSecureTextEntry。 | |
| accessoryBackground | ✅ | ❌ | ❌ | ❌ | boolean | textField.inputAccessoryView.backgroundColor。 | |
| accessoryTextColor | ✅ | ❌ | ❌ | ❌ | string | textField.inputAccessoryViewのラベルのテキスト色。 | |
| doneText | ✅ | ❌ | ❌ | ❌ | string | resignFirstResponderするためのtextField.inputAccessoryViewのラベルのテキスト。 |
TextField のプロトコル
SJUITextFieldDelegate
@objc public protocol SJUITextFieldDelegate
UITextFieldDelegateを超えた追加機能を持つSJUITextField用のデリゲートプロトコル。
@objc optional func textFieldDidDeleteBackward(textField: UITextField)
削除/バックスペースキーが押されたときに呼び出されます。カスタム削除動作の処理に役立ちます。
TextField のプロパティ
静的プロパティ
open class var viewClass: SJUITextField.Type
このプロパティは、createFromJSONメソッドでどのクラスをインフレートするかを決定するために使用されます。 SJUITextFieldを継承するクラスを作成する際は、このプロパティでビューのクラスを定義する必要があります。
static var accessoryBackgroundColor: UIColor
入力アクセサリービューの背景色(デフォルト:gray)。
static var accessoryTextColor: UIColor
入力アクセサリービューラベルのテキスト色(デフォルト:blue)。
static var defaultBorderColor: UIColor
テキストフィールドのデフォルトボーダー色(デフォルト:lightGray)。
インスタンスプロパティ
public var placeholderAttributes: [NSAttributedString.Key : Any]?
フォント、色、その他のテキスト属性を含むプレースホルダーテキストのスタイル設定用属性辞書。
private var _sjUiDelegate: SJUITextFieldDelegate?
削除キーの押下などの特殊イベントを処理する内部デリゲート参照。
オーバーライドプロパティ
override var delegate: UITextFieldDelegate?
UITextFieldDelegate機能をSJUITextFieldDelegate機能で拡張するカスタムデリゲートプロパティ。
TextField の関数
静的メソッド
public class func createFromJSON(attr: JSON, target: Any, views: inout [String: UIView]) -> SJUITextField
テキストフィールドがJSONファイルから作成される際に呼び出されるファクトリメソッド。 SJUITextFieldクラスを継承するクラスを作成する際は、このメソッドをオーバーライドしてください。
オーバーライドメソッド
override func deleteBackward()
SJUITextFieldDelegateメソッドtextFieldDidDeleteBackwardを呼び出すカスタム削除処理。
標準のUITextField動作を超えた追加コールバック機能を提供します。
継承メソッド
SJUITextFieldはUITextFieldとSJUIViewからすべてのメソッドを継承します:
- テキスト入力と編集メソッド
- イベント処理とデリゲートメソッド
- レイアウト制約管理
- タッチとジェスチャー処理
- キーボードと入力アクセサリー管理
イベント処理
SJUITextFieldはさまざまな入力イベントをサポートします:
- editingChangedイベント用の
onTextChange returnKeyTypeを通じたリターンキー処理- SJUITextFieldDelegateを通じたカスタム削除キー処理
- 数値キーボード用の「完了」ボタン付き入力アクセサリービュー
- 動的テキスト更新用のバインディングシステムとの統合