{"id":3049,"date":"2025-11-12T11:27:07","date_gmt":"2025-11-12T04:27:07","guid":{"rendered":"https:\/\/portal-atlasx.cdg.co.th\/home\/?post_type=docs&#038;p=3049"},"modified":"2025-11-12T11:27:07","modified_gmt":"2025-11-12T04:27:07","slug":"atlasx-text-field","status":"publish","type":"docs","link":"https:\/\/portal-atlasx.cdg.co.th\/home\/docs\/ios\/controls\/atlasx-text-field\/","title":{"rendered":"AtlasX Text Field"},"content":{"rendered":"\n<h1 class=\"wp-block-heading\" id=\"atlasx-text-field\">AtlasX Text Field<\/h1>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"textfieldtype\">TextFieldType<\/h2>\n\n\n\n<p>\u0e1b\u0e23\u0e30\u0e40\u0e20\u0e17\u0e02\u0e2d\u0e07 TextField<\/p>\n\n\n\n<div class=\"wp-block-kevinbatdorf-code-block-pro\" data-code-block-pro-font-family=\"Code-Pro-Fira-Code\" style=\"font-size:.875rem;font-family:Code-Pro-Fira-Code,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)\"><span role=\"button\" tabindex=\"0\" style=\"color:#000000;display:none\" aria-label=\"Copy\" class=\"code-block-pro-copy-button\"><pre class=\"code-block-pro-copy-button-pre\" aria-hidden=\"true\"><textarea class=\"code-block-pro-copy-button-textarea\" tabindex=\"-1\" aria-hidden=\"true\" readonly>enum TextFieldType {\n    case String(maxLength: Int?)\n    case IntNumber(min: Int?, max: Int?, isCurrency: Bool = false)\n    case DoubleNumber(min: Double?, max: Double?, isCurrency: Bool = false)\n    case Digit(maxLength: Int?)\n    case CitizenID(separator: Character = \" \")\n    case Email\n}<\/textarea><\/pre><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" style=\"width:24px;height:24px\" fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\" stroke-width=\"2\"><path class=\"with-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M4.5 12.75l6 6 9-13.5\"><\/path><path class=\"without-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M16.5 8.25V6a2.25 2.25 0 00-2.25-2.25H6A2.25 2.25 0 003.75 6v8.25A2.25 2.25 0 006 16.5h2.25m8.25-8.25H18a2.25 2.25 0 012.25 2.25V18A2.25 2.25 0 0118 20.25h-7.5A2.25 2.25 0 018.25 18v-1.5m8.25-8.25h-6a2.25 2.25 0 00-2.25 2.25v6\"><\/path><\/svg><\/span><pre class=\"shiki light-plus\" style=\"background-color: #FFFFFF\" tabindex=\"0\"><code><span class=\"line\"><span style=\"color: #0000FF\">enum<\/span><span style=\"color: #000000\"> <\/span><span style=\"color: #267F99\">TextFieldType<\/span><span style=\"color: #000000\"> {<\/span><\/span>\n<span class=\"line\"><span style=\"color: #000000\">    <\/span><span style=\"color: #0070C1\">case<\/span><span style=\"color: #000000\"> String(maxLength: Int?)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #000000\">    <\/span><span style=\"color: #0070C1\">case<\/span><span style=\"color: #000000\"> IntNumber(min: Int?, <\/span><span style=\"color: #0070C1\">max<\/span><span style=\"color: #000000\">: Int?, <\/span><span style=\"color: #0070C1\">isCurrency<\/span><span style=\"color: #000000\">: Bool = <\/span><span style=\"color: #0000FF\">false<\/span><span style=\"color: #000000\">)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #000000\">    <\/span><span style=\"color: #0070C1\">case<\/span><span style=\"color: #000000\"> DoubleNumber(min: Double?, <\/span><span style=\"color: #0070C1\">max<\/span><span style=\"color: #000000\">: Double?, <\/span><span style=\"color: #0070C1\">isCurrency<\/span><span style=\"color: #000000\">: Bool = <\/span><span style=\"color: #0000FF\">false<\/span><span style=\"color: #000000\">)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #000000\">    <\/span><span style=\"color: #0070C1\">case<\/span><span style=\"color: #000000\"> Digit(maxLength: Int?)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #000000\">    <\/span><span style=\"color: #0070C1\">case<\/span><span style=\"color: #000000\"> CitizenID(separator: Character = <\/span><span style=\"color: #A31515\">&quot; &quot;<\/span><span style=\"color: #000000\">)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #000000\">    <\/span><span style=\"color: #0070C1\">case<\/span><span style=\"color: #000000\"> Email<\/span><\/span>\n<span class=\"line\"><span style=\"color: #000000\">}<\/span><\/span><\/code><\/pre><\/div>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><thead><tr><th>Name<\/th><th>Description<\/th><\/tr><\/thead><tbody><tr><td>String<\/td><td>TextField \u0e1b\u0e23\u0e30\u0e40\u0e20\u0e17 String<\/td><\/tr><tr><td>IntNumber<\/td><td>TextField \u0e1b\u0e23\u0e30\u0e40\u0e20\u0e17 Integer<\/td><\/tr><tr><td>DoubleNumber<\/td><td>TextField \u0e1b\u0e23\u0e30\u0e40\u0e20\u0e17 Double<\/td><\/tr><tr><td>Digit<\/td><td>TextField \u0e1b\u0e23\u0e30\u0e40\u0e20\u0e17 Digit<\/td><\/tr><tr><td>CitizenID<\/td><td>TextField \u0e1b\u0e23\u0e30\u0e40\u0e20\u0e17\u0e40\u0e25\u0e02\u0e1a\u0e31\u0e15\u0e23\u0e1b\u0e23\u0e30\u0e0a\u0e32\u0e0a\u0e19<\/td><\/tr><tr><td>Email<\/td><td>TextField \u0e1b\u0e23\u0e30\u0e40\u0e20\u0e17 Email<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<h1 class=\"wp-block-heading\" id=\"class-atlasxtextfield\">Class AtlasXTextField<\/h1>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"properties\">Properties<\/h2>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><thead><tr><th>Name<\/th><th>Description<\/th><th>Type<\/th><th>Default<\/th><\/tr><\/thead><tbody><tr><td>type<\/td><td>\u0e1b\u0e23\u0e30\u0e40\u0e20\u0e17\u0e02\u0e2d\u0e07 TextField<\/td><td>TextFieldType<\/td><td>null<\/td><\/tr><tr><td>isRequired<\/td><td>\u0e01\u0e32\u0e23\u0e01\u0e33\u0e2b\u0e19\u0e14\u0e43\u0e2b\u0e49\u0e40\u0e1b\u0e47\u0e19 TextField \u0e17\u0e35\u0e48\u0e1a\u0e31\u0e07\u0e04\u0e31\u0e1a\u0e43\u0e2b\u0e49\u0e01\u0e23\u0e2d\u0e01<\/td><td>Boolean<\/td><td>false<\/td><\/tr><tr><td>isValid<\/td><td>\u0e04\u0e27\u0e32\u0e21\u0e16\u0e39\u0e01\u0e15\u0e49\u0e2d\u0e07\u0e02\u0e2d\u0e07\u0e02\u0e49\u0e2d\u0e04\u0e27\u0e32\u0e21\u0e43\u0e19 TextField \u0e01\u0e31\u0e1a\u0e1b\u0e23\u0e30\u0e40\u0e20\u0e17\u0e02\u0e2d\u0e07 TextField<\/td><td>Boolean<\/td><td>true<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"method-overview\">Method Overview<\/h2>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><thead><tr><th>Name<\/th><th>Description<\/th><th>Return<\/th><\/tr><\/thead><tbody><tr><td>setupDelegate()<\/td><td>\u0e01\u0e32\u0e23\u0e15\u0e31\u0e49\u0e07\u0e04\u0e48\u0e32 Delegate \u0e2a\u0e33\u0e2b\u0e23\u0e31\u0e1a TextField<\/td><td>void<\/td><\/tr><tr><td>setup()<\/td><td>\u0e01\u0e32\u0e23\u0e15\u0e31\u0e49\u0e07\u0e04\u0e48\u0e32\u0e1b\u0e23\u0e30\u0e40\u0e20\u0e17\u0e02\u0e2d\u0e07 TextField \u0e41\u0e25\u0e30\u0e01\u0e32\u0e23\u0e01\u0e33\u0e2b\u0e19\u0e14\u0e43\u0e2b\u0e49\u0e40\u0e1b\u0e47\u0e19 TextField \u0e17\u0e35\u0e48\u0e1a\u0e31\u0e07\u0e04\u0e31\u0e1a\u0e43\u0e2b\u0e49\u0e01\u0e23\u0e2d\u0e01<\/td><td>void<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"method-details\">Method Details<\/h2>\n\n\n\n<div class=\"wp-block-kevinbatdorf-code-block-pro\" data-code-block-pro-font-family=\"Code-Pro-Fira-Code\" style=\"font-size:.875rem;font-family:Code-Pro-Fira-Code,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)\"><span role=\"button\" tabindex=\"0\" style=\"color:#000000;display:none\" aria-label=\"Copy\" class=\"code-block-pro-copy-button\"><pre class=\"code-block-pro-copy-button-pre\" aria-hidden=\"true\"><textarea class=\"code-block-pro-copy-button-textarea\" tabindex=\"-1\" aria-hidden=\"true\" readonly>func setupDelegate(_ delegate: AtlasXTextFieldDelgate)<\/textarea><\/pre><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" style=\"width:24px;height:24px\" fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\" stroke-width=\"2\"><path class=\"with-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M4.5 12.75l6 6 9-13.5\"><\/path><path class=\"without-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M16.5 8.25V6a2.25 2.25 0 00-2.25-2.25H6A2.25 2.25 0 003.75 6v8.25A2.25 2.25 0 006 16.5h2.25m8.25-8.25H18a2.25 2.25 0 012.25 2.25V18A2.25 2.25 0 0118 20.25h-7.5A2.25 2.25 0 018.25 18v-1.5m8.25-8.25h-6a2.25 2.25 0 00-2.25 2.25v6\"><\/path><\/svg><\/span><pre class=\"shiki light-plus\" style=\"background-color: #FFFFFF\" tabindex=\"0\"><code><span class=\"line\"><span style=\"color: #001080\">func<\/span><span style=\"color: #000000\"> <\/span><span style=\"color: #795E26\">setupDelegate<\/span><span style=\"color: #000000\">(<\/span><span style=\"color: #001080\">_<\/span><span style=\"color: #000000\"> <\/span><span style=\"color: #001080\">delegate<\/span><span style=\"color: #000000\">: <\/span><span style=\"color: #001080\">AtlasXTextFieldDelgate<\/span><span style=\"color: #000000\">)<\/span><\/span><\/code><\/pre><\/div>\n\n\n\n<p>\u0e01\u0e32\u0e23\u0e15\u0e31\u0e49\u0e07\u0e04\u0e48\u0e32 Delegate \u0e2a\u0e33\u0e2b\u0e23\u0e31\u0e1a TextField<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"parameters\">Parameters<\/h3>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><thead><tr><th>Name<\/th><th>Description<\/th><th>Type<\/th><\/tr><\/thead><tbody><tr><td>delegate<\/td><td>Class delegate<\/td><td>AtlasXTextFieldDelgate<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<div class=\"wp-block-kevinbatdorf-code-block-pro\" data-code-block-pro-font-family=\"Code-Pro-Fira-Code\" style=\"font-size:.875rem;font-family:Code-Pro-Fira-Code,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)\"><span role=\"button\" tabindex=\"0\" style=\"color:#000000;display:none\" aria-label=\"Copy\" class=\"code-block-pro-copy-button\"><pre class=\"code-block-pro-copy-button-pre\" aria-hidden=\"true\"><textarea class=\"code-block-pro-copy-button-textarea\" tabindex=\"-1\" aria-hidden=\"true\" readonly>func setup(type: TextFieldType, isRequired: Bool = false)<\/textarea><\/pre><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" style=\"width:24px;height:24px\" fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\" stroke-width=\"2\"><path class=\"with-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M4.5 12.75l6 6 9-13.5\"><\/path><path class=\"without-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M16.5 8.25V6a2.25 2.25 0 00-2.25-2.25H6A2.25 2.25 0 003.75 6v8.25A2.25 2.25 0 006 16.5h2.25m8.25-8.25H18a2.25 2.25 0 012.25 2.25V18A2.25 2.25 0 0118 20.25h-7.5A2.25 2.25 0 018.25 18v-1.5m8.25-8.25h-6a2.25 2.25 0 00-2.25 2.25v6\"><\/path><\/svg><\/span><pre class=\"shiki light-plus\" style=\"background-color: #FFFFFF\" tabindex=\"0\"><code><span class=\"line\"><span style=\"color: #001080\">func<\/span><span style=\"color: #000000\"> <\/span><span style=\"color: #795E26\">setup<\/span><span style=\"color: #000000\">(<\/span><span style=\"color: #001080\">type<\/span><span style=\"color: #000000\">: <\/span><span style=\"color: #001080\">TextFieldType<\/span><span style=\"color: #000000\">, <\/span><span style=\"color: #001080\">isRequired<\/span><span style=\"color: #000000\">: <\/span><span style=\"color: #001080\">Bool<\/span><span style=\"color: #000000\"> = <\/span><span style=\"color: #0000FF\">false<\/span><span style=\"color: #000000\">)<\/span><\/span><\/code><\/pre><\/div>\n\n\n\n<p>\u0e01\u0e32\u0e23\u0e15\u0e31\u0e49\u0e07\u0e04\u0e48\u0e32\u0e1b\u0e23\u0e30\u0e40\u0e20\u0e17\u0e02\u0e2d\u0e07 TextField \u0e41\u0e25\u0e30\u0e01\u0e32\u0e23\u0e01\u0e33\u0e2b\u0e19\u0e14\u0e43\u0e2b\u0e49\u0e40\u0e1b\u0e47\u0e19 TextField \u0e17\u0e35\u0e48\u0e1a\u0e31\u0e07\u0e04\u0e31\u0e1a\u0e43\u0e2b\u0e49\u0e01\u0e23\u0e2d\u0e01<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"parameters-1\">Parameters<\/h3>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><thead><tr><th>Name<\/th><th>Description<\/th><th>Type<\/th><\/tr><\/thead><tbody><tr><td>type<\/td><td>\u0e1b\u0e23\u0e30\u0e40\u0e20\u0e17\u0e02\u0e2d\u0e07 TextField<\/td><td>TextFieldType<\/td><\/tr><tr><td>isRequired<\/td><td>\u0e01\u0e32\u0e23\u0e01\u0e33\u0e2b\u0e19\u0e14\u0e43\u0e2b\u0e49\u0e40\u0e1b\u0e47\u0e19 TextField \u0e17\u0e35\u0e48\u0e1a\u0e31\u0e07\u0e04\u0e31\u0e1a\u0e43\u0e2b\u0e49\u0e01\u0e23\u0e2d\u0e01<\/td><td>Boolean<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"example\">Example<\/h2>\n\n\n\n<div class=\"wp-block-kevinbatdorf-code-block-pro\" data-code-block-pro-font-family=\"Code-Pro-Fira-Code\" style=\"font-size:.875rem;font-family:Code-Pro-Fira-Code,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)\"><span role=\"button\" tabindex=\"0\" style=\"color:#000000;display:none\" aria-label=\"Copy\" class=\"code-block-pro-copy-button\"><pre class=\"code-block-pro-copy-button-pre\" aria-hidden=\"true\"><textarea class=\"code-block-pro-copy-button-textarea\" tabindex=\"-1\" aria-hidden=\"true\" readonly>class YourViewController: UIViewController, AtlasXTextFieldDelgate {}\n    &lt;em>\/\/ You can add AtlasXTextField in Custom class to work with IBOutlet&lt;\/em>\n    @IBOutlet weak var textField: AtlasXTextField!\n\n    override func viewDidLoad() {\n        textField.setupDelegate(self)\n        textField.setup(type: .IntNumber(min: -4000, max: 15000, isCurrency: Bool = true), isRequired: true)\n\n        &lt;em>\/\/ Your code..&lt;\/em>\n    }\n\n    &lt;em>\/\/ AtlasXTextFieldDelgate&lt;\/em>\n    func didEditingChanged(_ sender: AtlasXTextField) {\n        print(sender)\n        print(self.textField.isValid)\n    }\n}<\/textarea><\/pre><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" style=\"width:24px;height:24px\" fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\" stroke-width=\"2\"><path class=\"with-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M4.5 12.75l6 6 9-13.5\"><\/path><path class=\"without-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M16.5 8.25V6a2.25 2.25 0 00-2.25-2.25H6A2.25 2.25 0 003.75 6v8.25A2.25 2.25 0 006 16.5h2.25m8.25-8.25H18a2.25 2.25 0 012.25 2.25V18A2.25 2.25 0 0118 20.25h-7.5A2.25 2.25 0 018.25 18v-1.5m8.25-8.25h-6a2.25 2.25 0 00-2.25 2.25v6\"><\/path><\/svg><\/span><pre class=\"shiki light-plus\" style=\"background-color: #FFFFFF\" tabindex=\"0\"><code><span class=\"line\"><span style=\"color: #0000FF\">class<\/span><span style=\"color: #000000\"> <\/span><span style=\"color: #267F99\">YourViewController<\/span><span style=\"color: #000000\">: <\/span><span style=\"color: #267F99\">UIViewController<\/span><span style=\"color: #000000\">, <\/span><span style=\"color: #267F99\">AtlasXTextFieldDelgate<\/span><span style=\"color: #000000\"> {}<\/span><\/span>\n<span class=\"line\"><span style=\"color: #000000\">    <\/span><span style=\"color: #800000\">&lt;em&gt;<\/span><span style=\"color: #000000\">\/\/ You can add AtlasXTextField in Custom class to work with IBOutlet<\/span><span style=\"color: #800000\">&lt;\/em&gt;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #000000\">    @<\/span><span style=\"color: #001080\">IBOutlet<\/span><span style=\"color: #000000\"> <\/span><span style=\"color: #001080\">weak<\/span><span style=\"color: #000000\"> <\/span><span style=\"color: #0000FF\">var<\/span><span style=\"color: #000000\"> <\/span><span style=\"color: #001080\">textField<\/span><span style=\"color: #000000\">: <\/span><span style=\"color: #267F99\">AtlasXTextField<\/span><span style=\"color: #000000\">!<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #000000\">    <\/span><span style=\"color: #001080\">override<\/span><span style=\"color: #000000\"> <\/span><span style=\"color: #001080\">func<\/span><span style=\"color: #000000\"> <\/span><span style=\"color: #795E26\">viewDidLoad<\/span><span style=\"color: #000000\">() {<\/span><\/span>\n<span class=\"line\"><span style=\"color: #000000\">        <\/span><span style=\"color: #001080\">textField<\/span><span style=\"color: #000000\">.<\/span><span style=\"color: #795E26\">setupDelegate<\/span><span style=\"color: #000000\">(<\/span><span style=\"color: #001080\">self<\/span><span style=\"color: #000000\">)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #000000\">        <\/span><span style=\"color: #001080\">textField<\/span><span style=\"color: #000000\">.<\/span><span style=\"color: #795E26\">setup<\/span><span style=\"color: #000000\">(<\/span><span style=\"color: #001080\">type<\/span><span style=\"color: #000000\">: .<\/span><span style=\"color: #795E26\">IntNumber<\/span><span style=\"color: #000000\">(<\/span><span style=\"color: #001080\">min<\/span><span style=\"color: #000000\">: -<\/span><span style=\"color: #098658\">4000<\/span><span style=\"color: #000000\">, <\/span><span style=\"color: #001080\">max<\/span><span style=\"color: #000000\">: <\/span><span style=\"color: #098658\">15000<\/span><span style=\"color: #000000\">, <\/span><span style=\"color: #001080\">isCurrency<\/span><span style=\"color: #000000\">: <\/span><span style=\"color: #001080\">Bool<\/span><span style=\"color: #000000\"> = <\/span><span style=\"color: #0000FF\">true<\/span><span style=\"color: #000000\">), <\/span><span style=\"color: #001080\">isRequired<\/span><span style=\"color: #000000\">: <\/span><span style=\"color: #0000FF\">true<\/span><span style=\"color: #000000\">)<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #000000\">        <\/span><span style=\"color: #800000\">&lt;em&gt;<\/span><span style=\"color: #000000\">\/\/ Your code..<\/span><span style=\"color: #800000\">&lt;\/em&gt;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #000000\">    }<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #000000\">    <\/span><span style=\"color: #800000\">&lt;em&gt;<\/span><span style=\"color: #000000\">\/\/ AtlasXTextFieldDelgate<\/span><span style=\"color: #800000\">&lt;\/em&gt;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #000000\">    <\/span><span style=\"color: #001080\">func<\/span><span style=\"color: #000000\"> <\/span><span style=\"color: #795E26\">didEditingChanged<\/span><span style=\"color: #000000\">(<\/span><span style=\"color: #001080\">_<\/span><span style=\"color: #000000\"> <\/span><span style=\"color: #001080\">sender<\/span><span style=\"color: #000000\">: <\/span><span style=\"color: #001080\">AtlasXTextField<\/span><span style=\"color: #000000\">) {<\/span><\/span>\n<span class=\"line\"><span style=\"color: #000000\">        <\/span><span style=\"color: #795E26\">print<\/span><span style=\"color: #000000\">(<\/span><span style=\"color: #001080\">sender<\/span><span style=\"color: #000000\">)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #000000\">        <\/span><span style=\"color: #795E26\">print<\/span><span style=\"color: #000000\">(<\/span><span style=\"color: #001080\">self<\/span><span style=\"color: #000000\">.<\/span><span style=\"color: #001080\">textField<\/span><span style=\"color: #000000\">.<\/span><span style=\"color: #001080\">isValid<\/span><span style=\"color: #000000\">)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #000000\">    }<\/span><\/span>\n<span class=\"line\"><span style=\"color: #000000\">}<\/span><\/span><\/code><\/pre><\/div>\n","protected":false},"featured_media":0,"parent":3046,"menu_order":1,"comment_status":"closed","ping_status":"closed","template":"","meta":{"nav_title":"","positive":"","negative":"","footnotes":""},"docs_category":[],"class_list":["post-3049","docs","type-docs","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/portal-atlasx.cdg.co.th\/home\/wp-json\/wp\/v2\/docs\/3049","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/portal-atlasx.cdg.co.th\/home\/wp-json\/wp\/v2\/docs"}],"about":[{"href":"https:\/\/portal-atlasx.cdg.co.th\/home\/wp-json\/wp\/v2\/types\/docs"}],"replies":[{"embeddable":true,"href":"https:\/\/portal-atlasx.cdg.co.th\/home\/wp-json\/wp\/v2\/comments?post=3049"}],"version-history":[{"count":1,"href":"https:\/\/portal-atlasx.cdg.co.th\/home\/wp-json\/wp\/v2\/docs\/3049\/revisions"}],"predecessor-version":[{"id":3050,"href":"https:\/\/portal-atlasx.cdg.co.th\/home\/wp-json\/wp\/v2\/docs\/3049\/revisions\/3050"}],"up":[{"embeddable":true,"href":"https:\/\/portal-atlasx.cdg.co.th\/home\/wp-json\/wp\/v2\/docs\/3046"}],"wp:attachment":[{"href":"https:\/\/portal-atlasx.cdg.co.th\/home\/wp-json\/wp\/v2\/media?parent=3049"}],"wp:term":[{"taxonomy":"docs_category","embeddable":true,"href":"https:\/\/portal-atlasx.cdg.co.th\/home\/wp-json\/wp\/v2\/docs_category?post=3049"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}