الفرق بين المراجعتين لصفحة: «ReactNative/textinput»
رقية-بورية (نقاش | مساهمات) رفع المحتوى |
رقية-بورية (نقاش | مساهمات) مراجعة |
||
سطر 1: | سطر 1: | ||
<noinclude>{{DISPLAYTITLE:المكون TextInput في ReactNative}}</noinclude> | <noinclude>{{DISPLAYTITLE:المكون TextInput في ReactNative}}</noinclude> | ||
يُعَدّ المكون <code>TextInput</code> من المكونات الأساسية في [[ReactNative|React Native]]، حيث يسمح للمستخدم بإدخال النصوص عن طريق لوحة المفاتيح، ويمكن التحكم في نوع الإدخال (نص، وأرقام، وبريد إلكتروني، وكلمة مرور ...إلخ) ونوع لوحة المفاتيح وغيرها من الخاصيات (props) التي سيأتي بيانها لاحقًا. | |||
توضِّح الشيفرة أدناه كيفية استخدام المكون <code>TextInput</code>، حيث يُستمع للحدث <code>onChangeText</code> الذي يُحدِّث القيمة الخاصة بالمكون <code>TextInput</code> والمخزّنة في الحالة (State) عند الضغط على أيّ زرّ في لوحة المفاتيح. وتوجد أحداث أخرى، مثل: <code>onSubmitEditing</code> و<code>onFocus</code> ستُشرح وظائفها لاحقًا. | |||
<syntaxhighlight class="react">import React from 'react'; | <syntaxhighlight class="react" lang="javascript">import React from 'react'; | ||
import { TextInput } from 'react-native'; | import { TextInput } from 'react-native'; | ||
سطر 20: | سطر 20: | ||
export default UselessTextInput;</syntaxhighlight> | export default UselessTextInput;</syntaxhighlight> | ||
تُستخدم الدالتان <code> | تُستخدم الدالتان <code>()focus.</code> و<code>()blur.</code> للتركيز على العنصر أو لنقل التركيز بعيدًا عنه بطريقة برمجية. | ||
تكون بعض الخاصيّات | تكون بعض الخاصيّات متاحةً فقط في إحدى الحالتين <code>multiline={true/false}</code>، مثل: خواص الإطارات (<code>borderBottomColor</code>، و<code>borderLeftWidth</code>و غيرها) حيث لا تعمل هذه الخواص مع الخاصية <code>multiline=true</code>، ويمكن الحصول على نفس تأثير هذه الخواص عن طريق وضع المكون <code>TextInput</code> داخل المكون <code>[[ReactNative/view|View]]</code> وتطبيق هذه الخواص على الأخير. | ||
'''مثال''' | '''مثال''' | ||
<syntaxhighlight class="react">import React from 'react'; | <syntaxhighlight class="react" lang="javascript">import React from 'react'; | ||
import { View, TextInput } from 'react-native'; | import { View, TextInput } from 'react-native'; | ||
سطر 61: | سطر 61: | ||
export default UselessTextInputMultiline;</syntaxhighlight> | export default UselessTextInputMultiline;</syntaxhighlight> | ||
'''ملاحظة''': يمتلك المكوّن <code>TextInput</code> إطارًا سفليًا، وتوجد حاشية بارتفاع معيّن بين الإطار و العنصر نفسه، ولا يمكن تعديل ارتفاعها، لحل هذه المشكلة يمكن إتباع إحدى الطريقتين التاليتين: | |||
# عدم تحديد إرتفاع معيّن للمكون <code>TextInput</code>، وفي هذه الحالة سيتولى نظام التشغيل أمر عرض الإطار السفلي في مكانه الصحيح. | |||
# عدم تحديد إرتفاع | |||
# إخفاء الإطار عن طريق إعطاء الخاصية <code>underlineColorAndroid</code> القيمة <code>transparent</code>. | # إخفاء الإطار عن طريق إعطاء الخاصية <code>underlineColorAndroid</code> القيمة <code>transparent</code>. | ||
'''ملاحظة''': لاحظ أنَّ تحديد النص داخل المكون <code>TextInput</code> على الأجهزة التي تعمل على نظام أندرويد قد يسبِّب تغيير قيمة الخاصية <code>windowSoftInputMode</code> إلى <code>adjustResize</code>، مما يؤثر على عرض العناصر ذات الموضع المطلق <code>position: absolute</code> عندما تكون لوحة المفاتيح مفتوحة، ويمكن حلّ هذه المشكلة عن طريق تحديد قيمة الخاصية <code>windowSoftInputMode</code> في ملف <code>AndroidMainfest.xml</code> ([https://developer.android.com/guide/topics/manifest/activity-element.html انظر توثيق MDN])، أو التحكم في هذه الخاصية عن طريق شيفرات أصلية (Native code). | |||
'''ملاحظة''': لاحظ أنَّ تحديد النص داخل المكون <code>TextInput</code> على الأجهزة التي تعمل على نظام أندرويد قد | |||
__toc__ | __toc__ | ||
== مرجع | == مرجع الخاصيات == | ||
=== <code>allowFontScaling</code> === | === <code>allowFontScaling</code> === | ||
تُحدِّد ما إذا كان يجب تغيير حجم الخطوط لتناسب إعدادات حجم النص الخاصة بإمكانية الوصول (Accessibility settings)، القيمة الافتراضية هي <code>true</code>. | |||
{| class="wikitable" | {| class="wikitable" | ||
سطر 86: | سطر 82: | ||
| لا | | لا | ||
|} | |} | ||
=== <code>autoCapitalize</code> === | === <code>autoCapitalize</code> === | ||
تُستخدم لتفعيل تكبير الأحرف تلقائيًا، وهي غير مدعومة في بعض أنواع لوحات المفاتيح، مثل: <code>name-phone-pad</code>. | |||
{| class="wikitable" | {| class="wikitable" | ||
سطر 101: | سطر 94: | ||
|- | |- | ||
| <code>words</code> | | <code>words</code> | ||
| تكبير الحرف الأول من | | تكبير الحرف الأول من كلّ كلمة. | ||
|- | |- | ||
| <code>sentences</code> | | <code>sentences</code> | ||
| تكبير الحرف الأول من | | تكبير الحرف الأول من كلّ جملة (القيمة الإفتراضية). | ||
|- | |- | ||
| <code>none</code> | | <code>none</code> | ||
سطر 114: | سطر 107: | ||
! مطلوب | ! مطلوب | ||
|- | |- | ||
| | | <code>('none', 'sentences', 'words', 'characters')</code> | ||
| لا | | لا | ||
|} | |} | ||
=== <code>autoCompleteType</code> === | === <code>autoCompleteType</code> === | ||
تقدِّم أنظمة التشغيل والبرامج المختلفة خاصية الإكمال التلقائي، إذ يُدخل المستخدم جزءًا من الكلمة التي يريد البحث عنها فيعطيه النظام أو البرنامج بعض الاقتراحات لإكمال الكلمة التي أدخلها تلقائيًا وذلك بالاستناد إلى مجموعة من السلسلة النصية المخزّنة مسبقًا في النظام. | |||
تأخذ الخاصية <code>autoCompleteType</code> إحدى القيم التالية: | تأخذ الخاصية <code>autoCompleteType</code> إحدى القيم التالية: | ||
سطر 145: | سطر 135: | ||
! نظام التشغيل | ! نظام التشغيل | ||
|- | |- | ||
| <code> | | <code>('off', 'username', 'password', 'email', 'name', 'tel', 'street-address', 'postal-code', 'cc-number', 'cc-csc', 'cc-exp', 'cc-exp-month', 'cc-exp-year')</code> | ||
| لا | | لا | ||
| أندرويد | | أندرويد | ||
|} | |} | ||
=== <code>autoCorrect</code> === | === <code>autoCorrect</code> === | ||
تُستخدم لتفعيل أو تعطيل التصحيح التلقائي للكلمات، والقيمة الافتراضية هي <code>true</code>. | |||
{| class="wikitable" | {| class="wikitable" | ||
سطر 163: | سطر 150: | ||
| لا | | لا | ||
|} | |} | ||
=== <code>autoFocus</code> === | === <code>autoFocus</code> === | ||
تسمح لنا هذه الخاصية بنقل التركيز (focus) تلقائيًا إلى العنصر عند تحميل الصفحة (<code>componentDidMount</code>) | تسمح لنا هذه الخاصية بنقل التركيز (focus) تلقائيًا إلى العنصر عند تحميل الصفحة (<code>componentDidMount</code>)، والقيمة الافتراضية هي <code>false</code>. | ||
{| class="wikitable" | {| class="wikitable" | ||
سطر 177: | سطر 161: | ||
| لا | | لا | ||
|} | |} | ||
=== <code>blurOnSubmit</code> === | === <code>blurOnSubmit</code> === | ||
تسمح هذه الخاصية بنقل التركيز بعيدًا عن العنصر، القيمة الافتراضية لها هي <code>true</code> لحقول الإدخال ذات السطر الواحد، والقيمة <code>false</code> للحقول ذات الأسطر المتعددة. إعطاء الخاصية القيمة <code>true</code> للحقول ذات الأسطر المتعددة سينقل التركيز بعيدًا عن العنصر عن الضغط على | تسمح هذه الخاصية بنقل التركيز بعيدًا عن العنصر، القيمة الافتراضية لها هي <code>true</code> لحقول الإدخال ذات السطر الواحد، والقيمة <code>false</code> للحقول ذات الأسطر المتعددة. إعطاء الخاصية القيمة <code>true</code> للحقول ذات الأسطر المتعددة سينقل التركيز بعيدًا عن العنصر عن الضغط على زرّ الإدخال (Enter) بدلًا عن الانتقال لسطر جديد. | ||
{| class="wikitable" | {| class="wikitable" | ||
! النوع | ! النوع | ||
سطر 193: | سطر 171: | ||
| لا | | لا | ||
|} | |} | ||
=== <code>carretHidden</code> === | === <code>carretHidden</code> === | ||
تُخفي هذه الخاصية مؤشر الإدخال إذا كانت قيمتها <code>true</code> | تُخفي هذه الخاصية مؤشر الإدخال إذا كانت قيمتها <code>true</code>، والقيمة الإفتراضية لها هي <code>false</code>. | ||
{| class="wikitable" | {| class="wikitable" | ||
سطر 207: | سطر 182: | ||
| لا | | لا | ||
|} | |} | ||
=== <code>clearButtonMode</code> === | === <code>clearButtonMode</code> === | ||
تُحدِّد متى سيظهر زرّ المسح (clear) بجانب حقل الإدخال <code>TextInput</code>، والقيمة الافتراضية هي <code>never</code>. | |||
{| class="wikitable" | {| class="wikitable" | ||
سطر 219: | سطر 191: | ||
! نظام التشغيل | ! نظام التشغيل | ||
|- | |- | ||
| | | <code>('never', 'while-editing', 'unless-editing', 'always')</code> | ||
| لا | | لا | ||
| iOS | | iOS | ||
|} | |} | ||
=== <code>clearTextOnFocus</code> === | === <code>clearTextOnFocus</code> === | ||
سطر 239: | سطر 208: | ||
| iOS | | iOS | ||
|} | |} | ||
=== <code>contextMenuHidden</code> === | === <code>contextMenuHidden</code> === | ||
تُستخدم لإظهار أو إخفاء قائمة السياق (context menu). | |||
{| class="wikitable" | {| class="wikitable" | ||
سطر 253: | سطر 219: | ||
| لا | | لا | ||
|} | |} | ||
=== <code>dataDetectorTypes</code> === | === <code>dataDetectorTypes</code> === | ||
تُحدّد أنواع البيانات المُدخلة التي ستُحوَّل إلى روابط يمكن الضغط عليها، ولا يمكن استخدام هذه الخاصية إلَّا مع الخاصيتين <code>multiline=true</code>و<code>editable=false</code>. ما قد تأخذ قيمةً واحدةً أو مصفوفة قيم. | |||
'''القيم المُتاحة''': | '''القيم المُتاحة''': | ||
سطر 274: | سطر 237: | ||
! نظام التشغيل | ! نظام التشغيل | ||
|- | |- | ||
| | | ('phoneNumber', 'link', 'address', 'calendarEvent', 'none', 'all'), ,array of enum('phoneNumber', 'link', 'address', 'calendarEvent', 'none', 'all') | ||
| لا | | لا | ||
| iOS | | iOS | ||
|} | |} | ||
=== <code>defaultValue</code> === | === <code>defaultValue</code> === | ||
تعطي | تعطي قيمةص إبتدائيةً للمكوّن <code>TextInpu</code>، وتتغيَّر هذه القيمة تلقائيًا عندما يبدأ المستخدم في الكتابة. | ||
{| class="wikitable" | {| class="wikitable" | ||
سطر 292: | سطر 252: | ||
| لا | | لا | ||
|} | |} | ||
=== <code>disableFullscreenUI</code> === | === <code>disableFullscreenUI</code> === | ||
إذا كانت قيمة هذه الخاصية <code>false</code>- وهي القيمة الإفتراضية - يعرض نظام التشغيل حقل الإدخال في ملء | إذا كانت قيمة هذه الخاصية <code>false</code> - وهي القيمة الإفتراضية - يعرض نظام التشغيل حقل الإدخال في ملء الشاشة، أمّا إذا أعطيت القيمة <code>true</code> فسيُعَطَّل هذا السلوك ويُعرض حقل الإدخال في الحالة الطبيعية. | ||
{| class="wikitable" | {| class="wikitable" | ||
سطر 308: | سطر 265: | ||
| أندرويد | | أندرويد | ||
|} | |} | ||
=== <code>editable</code> === | === <code>editable</code> === | ||
تمنع تعديل النص داخل حقل الإدخال <code>TextInput</code> إذا كانت قيمتها <code>false</code> | تمنع تعديل النص داخل حقل الإدخال <code>TextInput</code> إذا كانت قيمتها <code>false</code>، والقيمة الافتراضية هي <code>true</code>. | ||
{| class="wikitable" | {| class="wikitable" | ||
سطر 322: | سطر 276: | ||
| لا | | لا | ||
|} | |} | ||
=== <code>enablesReturnKeyAutomatically</code> === | === <code>enablesReturnKeyAutomatically</code> === | ||
عند إعطاء هذه الخاصية القيمة <code>true</code>، تُعطِّل لوحة المفاتيح | عند إعطاء هذه الخاصية القيمة <code>true</code>، تُعطِّل لوحة المفاتيح زرّ الإدخال عندما يكون حقل الإدخال <code>TextInput</code> فارغًا، وتعيد تشغيله تلقائيًا عند وجود أيّ نص داخله، والقيمة الافتراضية هي <code>false</code>. | ||
=== <code>importantForAutofill</code> === | === <code>importantForAutofill</code> === | ||
تُحدّد ما إذا كانت الحقول ستُضاف إلى هيكلة العرض بغرض الملء التلقائي (autofill). القيمة الافتراضية هي <code>auto</code>. وقد تأخذ إحدى القيم التالية: | |||
{| class="wikitable" | {| class="wikitable" | ||
سطر 340: | سطر 288: | ||
|- | |- | ||
| <code>auto</code> | | <code>auto</code> | ||
| تترك نظام التشغيل | | تترك نظام التشغيل يُحدِّد ما إذا كان سيتم ملء الحقل تلقائيًا. | ||
|- | |- | ||
| <code>no</code> | | <code>no</code> | ||
سطر 360: | سطر 308: | ||
! نظام التشغيل | ! نظام التشغيل | ||
|- | |- | ||
| | | <code>('auto', 'no', 'noExcludeDescendants', 'yes', 'yesExcludeDescendants')</code> | ||
| لا | | لا | ||
| أندرويد | | أندرويد | ||
|} | |} | ||
=== <code>inlineImageLeft</code> === | === <code>inlineImageLeft</code> === | ||
تعرض الصورة باتجاه اليسار. ينبغي أن تكون الصورة داخل الملف <code>/android/app/src/main/res/drawable</code>، وتُستعمل كالآتي: | تعرض الصورة باتجاه اليسار. ينبغي أن تكون الصورة داخل الملف <code>/android/app/src/main/res/drawable</code>، وتُستعمل كالآتي: | ||
<syntaxhighlight class="react"><TextInput inlineImageLeft='search_icon' /></syntaxhighlight> | <syntaxhighlight class="react" lang="javascript"><TextInput inlineImageLeft='search_icon' /></syntaxhighlight> | ||
{| class="wikitable" | {| class="wikitable" | ||
! النوع | ! النوع | ||
سطر 381: | سطر 326: | ||
| أندرويد | | أندرويد | ||
|} | |} | ||
=== <code>inlineImagePadding</code> === | === <code>inlineImagePadding</code> === | ||
سطر 393: | سطر 335: | ||
! نظام التشغيل | ! نظام التشغيل | ||
|- | |- | ||
| | | عدد (number) | ||
| لا | | لا | ||
| أندرويد | | أندرويد | ||
|} | |} | ||
=== <code>inputAccessoryViewID</code> === | === <code>inputAccessoryViewID</code> === | ||
مُعَرِّف اختياري يستخدم لربط المكون <code>InputAccessoryView</code> مع حقل الإدخال <code>TextInput</code>. يُعرض المكون <code>InputAccessiryView</code> فوق لوحة المفاتيح عندما | مُعَرِّف اختياري يستخدم لربط المكون <code>InputAccessoryView</code> مع حقل الإدخال <code>TextInput</code>. يُعرض المكون <code>InputAccessiryView</code> فوق لوحة المفاتيح عندما يُحدَّد المكون <code>TextInput</code>. | ||
{| class="wikitable" | {| class="wikitable" | ||
سطر 413: | سطر 352: | ||
| iOS | | iOS | ||
|} | |} | ||
=== <code>keyboardAppearance</code> === | === <code>keyboardAppearance</code> === | ||
سطر 425: | سطر 361: | ||
! نظام التشغيل | ! نظام التشغيل | ||
|- | |- | ||
| | | <code>('default', 'light', 'dark')</code> | ||
| لا | | لا | ||
| iOS | | iOS | ||
|} | |} | ||
=== <code>keyboardType</code> === | === <code>keyboardType</code> === | ||
سطر 462: | سطر 395: | ||
! مطلوب | ! مطلوب | ||
|- | |- | ||
| | | <code>('default', 'email-address', 'numeric', 'phone-pad', 'ascii-capable', 'numbers-and-punctuation', 'url', 'number-pad', 'name-phone-pad', 'decimal-pad', 'twitter', 'web-search', 'visible-password')</code> | ||
| لا | | لا | ||
|} | |} | ||
=== <code>maxFontSizeMultiplier</code> === | === <code>maxFontSizeMultiplier</code> === | ||
تُحدِّد أقصى تكبير ممكن للخط عندما تكون الخاصية <code>allowFontScaling</code> مُفعَّلة. | تُحدِّد أقصى تكبير ممكن للخط عندما تكون الخاصية <code>allowFontScaling</code> مُفعَّلة. وقد تأخذ القيم الآتية: | ||
{| class="wikitable" | {| class="wikitable" | ||
سطر 490: | سطر 420: | ||
! مطلوب | ! مطلوب | ||
|- | |- | ||
| | | عدد (number) | ||
| لا | | لا | ||
|} | |} | ||
=== <code>maxLength</code> === | === <code>maxLength</code> === | ||
سطر 504: | سطر 431: | ||
! مطلوب | ! مطلوب | ||
|- | |- | ||
| | | عدد (number) | ||
| لا | | لا | ||
|} | |} | ||
=== <code>multiline</code> === | === <code>multiline</code> === | ||
تحدد ما إذا كان حقل الإدخال سطر واحد (وعندها تكون قيمتها <code>false</code>) أو عدة أسطر (القيمة <code>true</code>) | تحدد ما إذا كان حقل الإدخال سطر واحد (وعندها تكون قيمتها <code>false</code>) أو عدة أسطر (القيمة <code>true</code>)، وتنبغي ملاحظتك لمحاذاة النص داخل عنصر الإدخال متعدد الأسطر إلى الأعلى على أجهزة iOS، وفي الوسط في أجهزة أندرويد، لذلك يجب استخدام الخاصية <code>textAlignVertical</code> للحصول على سلوك مشابه في النظامين. | ||
{| class="wikitable" | {| class="wikitable" | ||
سطر 521: | سطر 445: | ||
| لا | | لا | ||
|} | |} | ||
=== الخاصية <code>numberOfLines</code> === | === الخاصية <code>numberOfLines</code> === | ||
سطر 533: | سطر 454: | ||
! نظام التشغيل | ! نظام التشغيل | ||
|- | |- | ||
| | | عدد (number) | ||
| لا | | لا | ||
| أندرويد | | أندرويد | ||
|} | |} | ||
=== <code>onBlue</code> === | === <code>onBlue</code> === | ||
سطر 551: | سطر 469: | ||
| لا | | لا | ||
|} | |} | ||
=== <code>onChange</code> === | === <code>onChange</code> === | ||
دالة تُستدعَى عندما يتغير النص الموجود داخل العنصر <code>TextInput</code>. | دالة تُستدعَى عندما يتغير النص الموجود داخل العنصر <code>TextInput</code>. وتُستدعى عن طريق <code>{nativeEvent: {eventCount, target, text}}</code>. | ||
{| class="wikitable" | {| class="wikitable" | ||
سطر 565: | سطر 480: | ||
| لا | | لا | ||
|} | |} | ||
=== <code>onChangeText</code> === | === <code>onChangeText</code> === | ||
دالة تستدعَى عندما يتغير النص الموجود داخل العنصر <code>TextInput</code>، ويُرسل النص الذي | دالة تستدعَى عندما يتغير النص الموجود داخل العنصر <code>TextInput</code>، ويُرسل النص الذي استُبدِل مثل معامل للدالة. | ||
{| class="wikitable" | {| class="wikitable" | ||
سطر 579: | سطر 491: | ||
| لا | | لا | ||
|} | |} | ||
=== <code>onEndEditing</code> === | === <code>onEndEditing</code> === | ||
سطر 593: | سطر 502: | ||
| لا | | لا | ||
|} | |} | ||
=== <code>onFocus</code> === | === <code>onFocus</code> === | ||
سطر 607: | سطر 513: | ||
| لا | | لا | ||
|} | |} | ||
=== <code>onKeyPress</code> === | === <code>onKeyPress</code> === | ||
دالة تُستدعَى عند الضغط على | دالة تُستدعَى عند الضغط على أيّ زرّ على لوحة المفاتيح. | ||
{| class="wikitable" | {| class="wikitable" | ||
سطر 621: | سطر 524: | ||
| لا | | لا | ||
|} | |} | ||
=== <code>onLayout</code> === | === <code>onLayout</code> === | ||
سطر 635: | سطر 535: | ||
| لا | | لا | ||
|} | |} | ||
=== <code>onScroll</code> === | === <code>onScroll</code> === | ||
دالة تُستدعَى عند التمرير (scroll) في الاتجاهات الأربعة، تُرسل إحداثيات الموضع الحالي | دالة تُستدعَى عند التمرير (scroll) في الاتجاهات الأربعة، تُرسل إحداثيات الموضع الحالي مثل معاملات للدالة. | ||
{| class="wikitable" | {| class="wikitable" | ||
سطر 649: | سطر 546: | ||
| لا | | لا | ||
|} | |} | ||
=== الخاصية <code>onSelectionChange</code> === | === الخاصية <code>onSelectionChange</code> === | ||
دالة تُستدعَى عند تغيير النص | دالة تُستدعَى عند تغيير النص المُحدّد، وتتطلب هذه الخاصية أن تكون الخاصية <code>multiline=true</code> موجودة. | ||
{| class="wikitable" | {| class="wikitable" | ||
سطر 663: | سطر 557: | ||
| لا | | لا | ||
|} | |} | ||
=== <code>onSubmitEditing</code> === | === <code>onSubmitEditing</code> === | ||
دالة تُستدعَى عن الضغط على | دالة تُستدعَى عن الضغط على زرّ الإدخال (submit). | ||
{| class="wikitable" | {| class="wikitable" | ||
سطر 679: | سطر 570: | ||
'''ملاحظة''': لا تعمل هذه الدالة على نظام <code>iOS</code> عندما يكون نوع لوحة المفاتيح <code>phone-pad</code>. | '''ملاحظة''': لا تعمل هذه الدالة على نظام <code>iOS</code> عندما يكون نوع لوحة المفاتيح <code>phone-pad</code>. | ||
=== <code>placeholder</code> === | === <code>placeholder</code> === | ||
تُحدِّد جملة أو سلسلة نصية تعمل | تُحدِّد جملة أو سلسلة نصية تعمل مثل نص بديل يظهر عندما يكون عنصر الإدخال <code>TextInput</code> فارغًا. | ||
{| class="wikitable" | {| class="wikitable" | ||
سطر 693: | سطر 581: | ||
| لا | | لا | ||
|} | |} | ||
=== <code>placeholderTextColor</code> === | === <code>placeholderTextColor</code> === | ||
سطر 704: | سطر 589: | ||
! مطلوب | ! مطلوب | ||
|- | |- | ||
| [ | | [[ReactNative/colors|لون]] | ||
| لا | | لا | ||
|} | |} | ||
=== <code>returnKeyType</code> === | === <code>returnKeyType</code> === | ||
تُحدِّد كيفية عمل | تُحدِّد كيفية عمل زرّ الإدخال. | ||
'''القيم العامة للخاصية (تعمل على نظام أندرويد و iOS)''' | '''القيم العامة للخاصية (تعمل على نظام أندرويد و iOS)''' | ||
سطر 722: | سطر 604: | ||
* <code>send</code> | * <code>send</code> | ||
''' | '''قِيَم تعمل على نظام أندرويد فقط''' | ||
* <code>none</code> | * <code>none</code> | ||
* <code>previous</code> | * <code>previous</code> | ||
''' | '''قِيَم تعمل على نظام iOS فقط''' | ||
* <code>default</code> | * <code>default</code> | ||
سطر 740: | سطر 622: | ||
! مطلوب | ! مطلوب | ||
|- | |- | ||
| <code> | | <code>('done', 'go', 'next', 'search', 'send', 'none', 'previous', 'default', 'emergency-call', 'google', 'join', 'route', 'yahoo')</code> | ||
| لا | | لا | ||
|} | |} | ||
سطر 746: | سطر 628: | ||
=== الخاصية <code>returnKeyLabel</code> === | === الخاصية <code>returnKeyLabel</code> === | ||
تُستعمل | تُستعمل مثل بديل للخاصية <code>returnKeyType</code> على أجهزة أندرويد. | ||
{| class="wikitable" | {| class="wikitable" | ||
سطر 757: | سطر 639: | ||
| أندرويد | | أندرويد | ||
|} | |} | ||
=== الخاصية <code>rejectResponderTermination</code> === | === الخاصية <code>rejectResponderTermination</code> === | ||
'''ملاحظة''': تعمل هذه الخاصية على نظام iOS فقط. | '''ملاحظة''': تعمل هذه الخاصية على نظام iOS فقط. | ||
تسمح للعنصر <code>TextInput</code> بتمرير حدث اللمس (touch event) للعنصر الأب عند إعطائها القيمة <code>true</code>، مما يسمح لبعض العناصر مثل <code>SwipeableListView</code> أن | تسمح للعنصر <code>TextInput</code> بتمرير حدث اللمس (touch event) للعنصر الأب عند إعطائها القيمة <code>true</code>، مما يسمح لبعض العناصر مثل <code>SwipeableListView</code> أن تُصبح قابلةً للتمرير من داخل العنصر <code>TextInput</code>. | ||
{| class="wikitable" | {| class="wikitable" | ||
سطر 775: | سطر 654: | ||
| iOS | | iOS | ||
|} | |} | ||
=== الخاصية <code>scrollEnable</code> === | === الخاصية <code>scrollEnable</code> === | ||
تسمح بتشغيل أو تعطيل التمرير في حقول الإدخال | تسمح بتشغيل أو تعطيل التمرير في حقول الإدخال متعدّدة الأسطر. القيمة الإفتراضية لها هي <code>true</code>. | ||
{| class="wikitable" | {| class="wikitable" | ||
سطر 791: | سطر 667: | ||
| iOS | | iOS | ||
|} | |} | ||
=== الخاصية <code>secureTextEntry</code> === | === الخاصية <code>secureTextEntry</code> === | ||
تُستخدم لحجب النص المُدخل وذلك عن طريق استبداله بنقاط أو العلامة (*). ولا تعمل هذه الخاصية مع حقول الإدخال | تُستخدم لحجب النص المُدخل وذلك عن طريق استبداله بنقاط أو العلامة (*). ولا تعمل هذه الخاصية مع حقول الإدخال متعدِّدة الأسطر. | ||
{| class="wikitable" | {| class="wikitable" | ||
سطر 805: | سطر 678: | ||
| لا | | لا | ||
|} | |} | ||
=== الخاصية <code>selection</code> === | === الخاصية <code>selection</code> === | ||
سطر 816: | سطر 686: | ||
! مطلوب | ! مطلوب | ||
|- | |- | ||
| | | {start: number,end: number} | ||
| لا | | لا | ||
|} | |} | ||
=== الخاصية <code>selectionColor</code> === | === الخاصية <code>selectionColor</code> === | ||
تُحدِّد لون التظليل ومؤشر الإدخال. | |||
{| class="wikitable" | {| class="wikitable" | ||
سطر 830: | سطر 697: | ||
! مطلوب | ! مطلوب | ||
|- | |- | ||
| [ | | [[ReactNative/colors|لون]] | ||
| لا | | لا | ||
|} | |} | ||
=== الخاصية <code>selectTextOnFocus</code> === | === الخاصية <code>selectTextOnFocus</code> === | ||
تُحدِّد النص الموجود داخل العنصر <code>TextInput</code> تلقائيًا عن الضغط عليه. | |||
{| class="wikitable" | {| class="wikitable" | ||
سطر 847: | سطر 711: | ||
| لا | | لا | ||
|} | |} | ||
=== الخاصية <code>showSoftInputOnFocus</code> === | === الخاصية <code>showSoftInputOnFocus</code> === | ||
تمنع ظهور لوحة المفاتيح عند التركيز على العنصر <code>TextInput</code> وذلك عندما تكون قيمتها <code>false</code> | تمنع ظهور لوحة المفاتيح عند التركيز على العنصر <code>TextInput</code> وذلك عندما تكون قيمتها <code>false</code>، والقيمة الافتراضية هي <code>true</code>. | ||
{| class="wikitable" | {| class="wikitable" | ||
سطر 863: | سطر 724: | ||
| أندرويد | | أندرويد | ||
|} | |} | ||
=== الخاصية <code>spellCheck</code> === | === الخاصية <code>spellCheck</code> === | ||
تستعمل لتشغيل أو تعطيل التدقيق | تستعمل لتشغيل أو تعطيل التدقيق الإملائي، وفي حال عدم تحديد قيمة لها فسترث قيمتها من الخاصية <code>autoCorrect</code>. | ||
{| class="wikitable" | {| class="wikitable" | ||
سطر 879: | سطر 737: | ||
| iOS | | iOS | ||
|} | |} | ||
=== الخاصية <code>textAlign</code> === | === الخاصية <code>textAlign</code> === | ||
سطر 894: | سطر 749: | ||
! مطلوب | ! مطلوب | ||
|- | |- | ||
| | | <code>('left', 'center', 'right')</code> | ||
| لا | | لا | ||
|} | |} | ||
=== الخاصية <code>textContentType</code> === | === الخاصية <code>textContentType</code> === | ||
تُعطي النظام معلومات متعلقة بدلالات النصوص | تُعطي النظام معلومات متعلقة بدلالات النصوص المتوقَّع إدخالها من المستخدم. | ||
في الإصدار 11 من نظام iOS وما بعده يمكن تحديد القيمة <code>username</code> أو <code>password</code> للخاصية <code>textContentType</code> لتفعيل الملء التلقائي لبيانات الدخول (login). | في الإصدار 11 من نظام iOS وما بعده يمكن تحديد القيمة <code>username</code> أو <code>password</code> للخاصية <code>textContentType</code> لتفعيل الملء التلقائي لبيانات الدخول (login). | ||
في الإصدار 12 من نظام iOS وما بعده | في الإصدار 12 من نظام iOS وما بعده تُستخدم القيمة <code>newPassword</code> للدلالة على كلمة مرور جديدة يُتوقَع إدخالها من المستخدم وتُحفظ في الجهاز. | ||
تُستخدم القيمة <code>oneTimeCode</code> للدلالة على إمكانية ملء الحقل تلقائيًا برمز يُرسل عن طريق رسالة نصية SMS. | |||
لتعطيل الملء التلقائي تُستخدَم القيمة <code>none</code> للخاصية <code>textContentType</code>. | لتعطيل الملء التلقائي تُستخدَم القيمة <code>none</code> للخاصية <code>textContentType</code>. | ||
سطر 948: | سطر 800: | ||
! نظام التشغيل | ! نظام التشغيل | ||
|- | |- | ||
| | | <code>('none', 'URL', 'addressCity', 'addressCityAndState', 'addressState', 'countryName', 'creditCardNumber', 'emailAddress', 'familyName', 'fullStreetAddress', 'givenName', 'jobTitle', 'location', 'middleName', 'name', 'namePrefix', 'nameSuffix', 'nickname', 'organizationName', 'postalCode', 'streetAddressLine1', 'streetAddressLine2', 'sublocality', 'telephoneNumber', 'username', 'password')</code> | ||
| لا | | لا | ||
| iOS | | iOS | ||
|} | |} | ||
=== الخاصية <code>passwordRules</code> === | === الخاصية <code>passwordRules</code> === | ||
تُستعمل لإضافة شروط ينبغي تحقيقها حتى يكون النص المُدخل صالحًا. | |||
{| class="wikitable" | {| class="wikitable" | ||
سطر 970: | سطر 819: | ||
انظر [https://developer.apple.com/password-rules/ قائمة الشروط] | انظر [https://developer.apple.com/password-rules/ قائمة الشروط] | ||
=== الخاصية <code>style</code> === | === الخاصية <code>style</code> === | ||
تُستخدم لتطبيق أنماط معيّنة لتغيير شكل ومظهر حقل الإدخال <code>TextInput</code>. | |||
{| class="wikitable" | {| class="wikitable" | ||
سطر 981: | سطر 827: | ||
! مطلوب | ! مطلوب | ||
|- | |- | ||
| [ | | [[ReactNative/text style props|نص]] | ||
| لا | | لا | ||
|} | |} | ||
انظر [ | انظر [[ReactNative/style|قائمة الأنماط]]. | ||
=== الخاصية <code>textBreakStrategy</code> === | === الخاصية <code>textBreakStrategy</code> === | ||
تُستخدم لتحديد نقاط الفصل في النصوص (النقاط التي يتم عندها الانتقال لسطر جديد). ويمكن | تُستخدم لتحديد نقاط الفصل في النصوص (النقاط التي يتم عندها الانتقال لسطر جديد). ويمكن أخذ القيم التالية: | ||
* <code>simple</code> | * <code>simple</code> | ||
سطر 1٬006: | سطر 849: | ||
| أندرويد | | أندرويد | ||
|} | |} | ||
=== الخاصية <code>underlineColorAndroid</code> === | === الخاصية <code>underlineColorAndroid</code> === | ||
سطر 1٬018: | سطر 858: | ||
! نظام التشغيل | ! نظام التشغيل | ||
|- | |- | ||
| [ | | [[ReactNative/colors|لون]] | ||
| لا | | لا | ||
| أندرويد | | أندرويد | ||
|} | |} | ||
=== الخاصية <code>value</code> === | === الخاصية <code>value</code> === | ||
تُستخدم لتحديد قيمة إفتراضية للعنصر <code>TextInput</code>. | |||
{| class="wikitable" | {| class="wikitable" | ||
سطر 1٬037: | سطر 874: | ||
|} | |} | ||
'''ملاحظة''': يجب التعامل مع هذه الخاصية بحذر، | '''ملاحظة''': يجب التعامل مع هذه الخاصية بحذر، فاستعمالها بطريقة خاطئة قد يتسبب في منع المستخدم من تغيير القيمة الإفتراضية للحقل وغيرها من المشاكل الأخرى. | ||
== مرجع الدوال == | == مرجع الدوال == | ||
=== الدالة <code> | === الدالة <code>()focus.</code> === | ||
<syntaxhighlight class="react">focus();</syntaxhighlight> | <syntaxhighlight class="react" lang="javascript">focus();</syntaxhighlight> | ||
تُستخدم لتحويل التركيز للعنصر الذي تُستدعى فيه. | |||
=== الدالة <code> | === الدالة <code>()blur.</code> === | ||
<syntaxhighlight class="react">blue();</syntaxhighlight> | <syntaxhighlight class="react" lang="javascript">blue();</syntaxhighlight> | ||
تُستخدم لنقل التركيز بعيدًا عن العنصر الذي تُستدعى فيه. | |||
=== الدالة <code> | === الدالة <code>()clear</code> === | ||
<syntaxhighlight class="react">clear();</syntaxhighlight> | <syntaxhighlight class="react" lang="javascript">clear();</syntaxhighlight> | ||
تُستخدم لمسح محتوى العنصر <code>TextInput</code>. | |||
=== الدالة <code> | === الدالة <code>()isFocused</code> === | ||
<syntaxhighlight class="react">isFocused();</syntaxhighlight> | <syntaxhighlight class="react" lang="javascript">isFocused();</syntaxhighlight> | ||
تُرجع القيمة <code>true</code> إذا كان العنصر الذي استُدعيت فيه الدالة في وضع التركيز (focsed) و <code>false</code>فيما عدا ذلك. | تُرجع القيمة <code>true</code> إذا كان العنصر الذي استُدعيت فيه الدالة في وضع التركيز (focsed) و<code>false</code>فيما عدا ذلك. | ||
== المصادر == | == المصادر == |
مراجعة 10:29، 3 مارس 2021
يُعَدّ المكون TextInput
من المكونات الأساسية في React Native، حيث يسمح للمستخدم بإدخال النصوص عن طريق لوحة المفاتيح، ويمكن التحكم في نوع الإدخال (نص، وأرقام، وبريد إلكتروني، وكلمة مرور ...إلخ) ونوع لوحة المفاتيح وغيرها من الخاصيات (props) التي سيأتي بيانها لاحقًا.
توضِّح الشيفرة أدناه كيفية استخدام المكون TextInput
، حيث يُستمع للحدث onChangeText
الذي يُحدِّث القيمة الخاصة بالمكون TextInput
والمخزّنة في الحالة (State) عند الضغط على أيّ زرّ في لوحة المفاتيح. وتوجد أحداث أخرى، مثل: onSubmitEditing
وonFocus
ستُشرح وظائفها لاحقًا.
import React from 'react';
import { TextInput } from 'react-native';
const UselessTextInput = () => {
const [value, onChangeText] = React.useState('Useless Placeholder');
return (
<TextInput
style={{ height: 40, borderColor: 'gray', borderWidth: 1 }}
onChangeText={text => onChangeText(text)}
value={value}
/>
);
}
export default UselessTextInput;
تُستخدم الدالتان ()focus.
و()blur.
للتركيز على العنصر أو لنقل التركيز بعيدًا عنه بطريقة برمجية.
تكون بعض الخاصيّات متاحةً فقط في إحدى الحالتين multiline={true/false}
، مثل: خواص الإطارات (borderBottomColor
، وborderLeftWidth
و غيرها) حيث لا تعمل هذه الخواص مع الخاصية multiline=true
، ويمكن الحصول على نفس تأثير هذه الخواص عن طريق وضع المكون TextInput
داخل المكون View
وتطبيق هذه الخواص على الأخير.
مثال
import React from 'react';
import { View, TextInput } from 'react-native';
const UselessTextInput = (props) => {
return (
<TextInput
{...props}
editable
maxLength={40}
/>
);
}
const UselessTextInputMultiline = () => {
const [value, onChangeText] = React.useState('Useless Multiline Placeholder');
return (
<View
style={{
backgroundColor: value,
borderBottomColor: '#000000',
borderBottomWidth: 1,
}}>
<UselessTextInput
multiline
numberOfLines={4}
onChangeText={text => onChangeText(text)}
value={value}
/>
</View>
);
}
export default UselessTextInputMultiline;
ملاحظة: يمتلك المكوّن TextInput
إطارًا سفليًا، وتوجد حاشية بارتفاع معيّن بين الإطار و العنصر نفسه، ولا يمكن تعديل ارتفاعها، لحل هذه المشكلة يمكن إتباع إحدى الطريقتين التاليتين:
- عدم تحديد إرتفاع معيّن للمكون
TextInput
، وفي هذه الحالة سيتولى نظام التشغيل أمر عرض الإطار السفلي في مكانه الصحيح. - إخفاء الإطار عن طريق إعطاء الخاصية
underlineColorAndroid
القيمةtransparent
.
ملاحظة: لاحظ أنَّ تحديد النص داخل المكون TextInput
على الأجهزة التي تعمل على نظام أندرويد قد يسبِّب تغيير قيمة الخاصية windowSoftInputMode
إلى adjustResize
، مما يؤثر على عرض العناصر ذات الموضع المطلق position: absolute
عندما تكون لوحة المفاتيح مفتوحة، ويمكن حلّ هذه المشكلة عن طريق تحديد قيمة الخاصية windowSoftInputMode
في ملف AndroidMainfest.xml
(انظر توثيق MDN)، أو التحكم في هذه الخاصية عن طريق شيفرات أصلية (Native code).
مرجع الخاصيات
allowFontScaling
تُحدِّد ما إذا كان يجب تغيير حجم الخطوط لتناسب إعدادات حجم النص الخاصة بإمكانية الوصول (Accessibility settings)، القيمة الافتراضية هي true
.
النوع | مطلوب |
---|---|
قيمة منطقية (bool) | لا |
autoCapitalize
تُستخدم لتفعيل تكبير الأحرف تلقائيًا، وهي غير مدعومة في بعض أنواع لوحات المفاتيح، مثل: name-phone-pad
.
القيمة | الوصف |
---|---|
character
|
تكبير جميع الأحرف. |
words
|
تكبير الحرف الأول من كلّ كلمة. |
sentences
|
تكبير الحرف الأول من كلّ جملة (القيمة الإفتراضية). |
none
|
تعطيل التكبير التلقائي للأحرف. |
النوع | مطلوب |
---|---|
('none', 'sentences', 'words', 'characters')
|
لا |
autoCompleteType
تقدِّم أنظمة التشغيل والبرامج المختلفة خاصية الإكمال التلقائي، إذ يُدخل المستخدم جزءًا من الكلمة التي يريد البحث عنها فيعطيه النظام أو البرنامج بعض الاقتراحات لإكمال الكلمة التي أدخلها تلقائيًا وذلك بالاستناد إلى مجموعة من السلسلة النصية المخزّنة مسبقًا في النظام.
تأخذ الخاصية autoCompleteType
إحدى القيم التالية:
off
username
password
email
name
tel
street-address
postal-code
cc-number
cc-csc
cc-exp
cc-exp-month
cc-exp-year
النوع | مطلوب | نظام التشغيل |
---|---|---|
('off', 'username', 'password', 'email', 'name', 'tel', 'street-address', 'postal-code', 'cc-number', 'cc-csc', 'cc-exp', 'cc-exp-month', 'cc-exp-year')
|
لا | أندرويد |
autoCorrect
تُستخدم لتفعيل أو تعطيل التصحيح التلقائي للكلمات، والقيمة الافتراضية هي true
.
النوع | مطلوب |
---|---|
قيمة منطقية (bool) | لا |
autoFocus
تسمح لنا هذه الخاصية بنقل التركيز (focus) تلقائيًا إلى العنصر عند تحميل الصفحة (componentDidMount
)، والقيمة الافتراضية هي false
.
النوع | مطلوب |
---|---|
قيمة منطقية (bool) | لا |
blurOnSubmit
تسمح هذه الخاصية بنقل التركيز بعيدًا عن العنصر، القيمة الافتراضية لها هي true
لحقول الإدخال ذات السطر الواحد، والقيمة false
للحقول ذات الأسطر المتعددة. إعطاء الخاصية القيمة true
للحقول ذات الأسطر المتعددة سينقل التركيز بعيدًا عن العنصر عن الضغط على زرّ الإدخال (Enter) بدلًا عن الانتقال لسطر جديد.
النوع | مطلوب |
---|---|
قيمة منطقية (bool) | لا |
carretHidden
تُخفي هذه الخاصية مؤشر الإدخال إذا كانت قيمتها true
، والقيمة الإفتراضية لها هي false
.
النوع | مطلوب |
---|---|
قيمة منطقية (bool) | لا |
clearButtonMode
تُحدِّد متى سيظهر زرّ المسح (clear) بجانب حقل الإدخال TextInput
، والقيمة الافتراضية هي never
.
النوع | مطلوب | نظام التشغيل |
---|---|---|
('never', 'while-editing', 'unless-editing', 'always')
|
لا | iOS |
clearTextOnFocus
إذا أُعطيت هذه الخاصية القيمة true
، يُفرَّغ حقل الإدخال عن الضغط عليه.
النوع | مطلوب | نظام التشغيل |
---|---|---|
قيمة منطقية (bool) | لا | iOS |
contextMenuHidden
تُستخدم لإظهار أو إخفاء قائمة السياق (context menu).
النوع | مطلوب |
---|---|
قيمة منطقية (bool) | لا |
dataDetectorTypes
تُحدّد أنواع البيانات المُدخلة التي ستُحوَّل إلى روابط يمكن الضغط عليها، ولا يمكن استخدام هذه الخاصية إلَّا مع الخاصيتين multiline=true
وeditable=false
. ما قد تأخذ قيمةً واحدةً أو مصفوفة قيم.
القيم المُتاحة:
'phoneNumber'
'link'
'address'
'calenderEvent'
'none'
'all'
النوع | مطلوب | نظام التشغيل |
---|---|---|
('phoneNumber', 'link', 'address', 'calendarEvent', 'none', 'all'), ,array of enum('phoneNumber', 'link', 'address', 'calendarEvent', 'none', 'all') | لا | iOS |
defaultValue
تعطي قيمةص إبتدائيةً للمكوّن TextInpu
، وتتغيَّر هذه القيمة تلقائيًا عندما يبدأ المستخدم في الكتابة.
النوع | مطلوب |
---|---|
سلسلة نصية (string) | لا |
disableFullscreenUI
إذا كانت قيمة هذه الخاصية false
- وهي القيمة الإفتراضية - يعرض نظام التشغيل حقل الإدخال في ملء الشاشة، أمّا إذا أعطيت القيمة true
فسيُعَطَّل هذا السلوك ويُعرض حقل الإدخال في الحالة الطبيعية.
النوع | مطلوب | نظام التشغيل |
---|---|---|
قيمة منطقية (bool) | لا | أندرويد |
editable
تمنع تعديل النص داخل حقل الإدخال TextInput
إذا كانت قيمتها false
، والقيمة الافتراضية هي true
.
النوع | مطلوب |
---|---|
قيمة منطقية (bool) | لا |
enablesReturnKeyAutomatically
عند إعطاء هذه الخاصية القيمة true
، تُعطِّل لوحة المفاتيح زرّ الإدخال عندما يكون حقل الإدخال TextInput
فارغًا، وتعيد تشغيله تلقائيًا عند وجود أيّ نص داخله، والقيمة الافتراضية هي false
.
importantForAutofill
تُحدّد ما إذا كانت الحقول ستُضاف إلى هيكلة العرض بغرض الملء التلقائي (autofill). القيمة الافتراضية هي auto
. وقد تأخذ إحدى القيم التالية:
القيمة | الوصف |
---|---|
auto
|
تترك نظام التشغيل يُحدِّد ما إذا كان سيتم ملء الحقل تلقائيًا. |
no
|
تُعطل الملء التلقائي للحقول. |
noExcludeDescendants
|
تُعطل الملء التلقائي للحقول الأبناء للعنصر الحالي. |
yes
|
تُفعِّل الملء التلقائي للحقول. |
yesExcludeDescendants
|
تُفعِّل الملء التلقائي للحقول الأبناء للعنصر الحالي. |
النوع | مطلوب | نظام التشغيل |
---|---|---|
('auto', 'no', 'noExcludeDescendants', 'yes', 'yesExcludeDescendants')
|
لا | أندرويد |
inlineImageLeft
تعرض الصورة باتجاه اليسار. ينبغي أن تكون الصورة داخل الملف /android/app/src/main/res/drawable
، وتُستعمل كالآتي:
<TextInput inlineImageLeft='search_icon' />
النوع | مطلوب | نظام التشغيل |
---|---|---|
سلسلة نصية (string) | لا | أندرويد |
inlineImagePadding
تُحدد حجم الحاشية بين الصورة والنص الموجود داخل حقل الإدخال TextInput
.
النوع | مطلوب | نظام التشغيل |
---|---|---|
عدد (number) | لا | أندرويد |
inputAccessoryViewID
مُعَرِّف اختياري يستخدم لربط المكون InputAccessoryView
مع حقل الإدخال TextInput
. يُعرض المكون InputAccessiryView
فوق لوحة المفاتيح عندما يُحدَّد المكون TextInput
.
النوع | مطلوب | نظام التشغيل |
---|---|---|
سلسلة نصية (string) | لا | iOS |
keyboardAppearance
تُحدد لون لوحة المفاتيح.
نوع | مطلوب | نظام التشغيل |
---|---|---|
('default', 'light', 'dark')
|
لا | iOS |
keyboardType
تُستخدم لتحديد نوع لوحة المفاتيح المستخدمة للإدخال.
القيم العامة للخاصية (تعمل على نظام أندرويد و iOS)
default
number-pad
decimal-pad
numeric
email-address
phone-pad
قيم تعمل فقط على نظام iOS
ascii-capable
numbers-and-punctuation
url
name-phone-pad
twitter
web-search
قيم تعمل فقط على نظام أندرويد
visible-password
النوع | مطلوب |
---|---|
('default', 'email-address', 'numeric', 'phone-pad', 'ascii-capable', 'numbers-and-punctuation', 'url', 'number-pad', 'name-phone-pad', 'decimal-pad', 'twitter', 'web-search', 'visible-password')
|
لا |
maxFontSizeMultiplier
تُحدِّد أقصى تكبير ممكن للخط عندما تكون الخاصية allowFontScaling
مُفعَّلة. وقد تأخذ القيم الآتية:
القيمة | الوصف |
---|---|
null أو undefined
|
ترث القيمة من العنصر الأب، أو تأخذ القيمة الإفتراضية (صفر) في حال عدم وجود قيمة للخاصية في العنصر الأب. |
0
|
لا توجد قيمة كُبرى. |
>=1
|
تعطي الخاصية maxFontSizeMultiplier القيمة المُحددة.
|
النوع | مطلوب |
---|---|
عدد (number) | لا |
maxLength
تُحدد أكبر عدد من الحروف يمكن إدخاله في الحقل TextInput
.
النوع | مطلوب |
---|---|
عدد (number) | لا |
multiline
تحدد ما إذا كان حقل الإدخال سطر واحد (وعندها تكون قيمتها false
) أو عدة أسطر (القيمة true
)، وتنبغي ملاحظتك لمحاذاة النص داخل عنصر الإدخال متعدد الأسطر إلى الأعلى على أجهزة iOS، وفي الوسط في أجهزة أندرويد، لذلك يجب استخدام الخاصية textAlignVertical
للحصول على سلوك مشابه في النظامين.
النوع | مطلوب |
---|---|
قيمة منطقية (bool) | لا |
الخاصية numberOfLines
تُحدد عدد الأسطر للعنصر TextInput
.
النوع | مطلوب | نظام التشغيل |
---|---|---|
عدد (number) | لا | أندرويد |
onBlue
دالة تُستدعى عندما يُبعد التركيز عن العنصر.
النوع | مطلوب |
---|---|
دالة (function) | لا |
onChange
دالة تُستدعَى عندما يتغير النص الموجود داخل العنصر TextInput
. وتُستدعى عن طريق {nativeEvent: {eventCount, target, text}}
.
النوع | مطلوب |
---|---|
دالة (function) | لا |
onChangeText
دالة تستدعَى عندما يتغير النص الموجود داخل العنصر TextInput
، ويُرسل النص الذي استُبدِل مثل معامل للدالة.
النوع | مطلوب |
---|---|
دالة (function) | لا |
onEndEditing
دالة تُستدعَى عند الإنتهاء من عملية الإدخال.
النوع | مطلوب |
---|---|
دالة (function) | لا |
onFocus
دالة تُستدعَى عند التركيز على العنصر وذلك بالضغط عليه.
النوع | مطلوب |
---|---|
دالة (function) | لا |
onKeyPress
دالة تُستدعَى عند الضغط على أيّ زرّ على لوحة المفاتيح.
النوع | مطلوب |
---|---|
دالة (function) | لا |
onLayout
دالة تُستدعَى مع الحدث onMount
.
النوع | مطلوب |
---|---|
دالة (function) | لا |
onScroll
دالة تُستدعَى عند التمرير (scroll) في الاتجاهات الأربعة، تُرسل إحداثيات الموضع الحالي مثل معاملات للدالة.
النوع | مطلوب |
---|---|
دالة (function) | لا |
الخاصية onSelectionChange
دالة تُستدعَى عند تغيير النص المُحدّد، وتتطلب هذه الخاصية أن تكون الخاصية multiline=true
موجودة.
النوع | مطلوب |
---|---|
دالة (function) | لا |
onSubmitEditing
دالة تُستدعَى عن الضغط على زرّ الإدخال (submit).
النوع | مطلوب |
---|---|
دالة (function) | لا |
ملاحظة: لا تعمل هذه الدالة على نظام iOS
عندما يكون نوع لوحة المفاتيح phone-pad
.
placeholder
تُحدِّد جملة أو سلسلة نصية تعمل مثل نص بديل يظهر عندما يكون عنصر الإدخال TextInput
فارغًا.
النوع | مطلوب |
---|---|
سلسلة نصية (string) | لا |
placeholderTextColor
تُحدِّد لون النص النائب (نص يُعرض بدلًا عن النص المُدخل عندما يكون العنصر فارغًا).
النوع | مطلوب |
---|---|
لون | لا |
returnKeyType
تُحدِّد كيفية عمل زرّ الإدخال.
القيم العامة للخاصية (تعمل على نظام أندرويد و iOS)
done
go
next
search
send
قِيَم تعمل على نظام أندرويد فقط
none
previous
قِيَم تعمل على نظام iOS فقط
default
emergency-call
google
join
route
yahoo
النوع | مطلوب |
---|---|
('done', 'go', 'next', 'search', 'send', 'none', 'previous', 'default', 'emergency-call', 'google', 'join', 'route', 'yahoo')
|
لا |
الخاصية returnKeyLabel
تُستعمل مثل بديل للخاصية returnKeyType
على أجهزة أندرويد.
نوع | مطلوب | نظام التشغيل |
---|---|---|
سلسلة نصية (string) | لا | أندرويد |
الخاصية rejectResponderTermination
ملاحظة: تعمل هذه الخاصية على نظام iOS فقط.
تسمح للعنصر TextInput
بتمرير حدث اللمس (touch event) للعنصر الأب عند إعطائها القيمة true
، مما يسمح لبعض العناصر مثل SwipeableListView
أن تُصبح قابلةً للتمرير من داخل العنصر TextInput
.
نوع | مطلوب | نظام التشغيل |
---|---|---|
قيمة منطقية (bool) | لا | iOS |
الخاصية scrollEnable
تسمح بتشغيل أو تعطيل التمرير في حقول الإدخال متعدّدة الأسطر. القيمة الإفتراضية لها هي true
.
نوع | مطلوب | نظام التشغيل |
---|---|---|
قيمة منطقية (bool) | لا | iOS |
الخاصية secureTextEntry
تُستخدم لحجب النص المُدخل وذلك عن طريق استبداله بنقاط أو العلامة (*). ولا تعمل هذه الخاصية مع حقول الإدخال متعدِّدة الأسطر.
النوع | مطلوب |
---|---|
قيمة منطقية (bool) | لا |
الخاصية selection
تُحدد موضع البداية والنهاية للنص المُحدد داخل العنصر TextInput
.
النوع | مطلوب |
---|---|
{start: number,end: number} | لا |
الخاصية selectionColor
تُحدِّد لون التظليل ومؤشر الإدخال.
النوع | مطلوب |
---|---|
لون | لا |
الخاصية selectTextOnFocus
تُحدِّد النص الموجود داخل العنصر TextInput
تلقائيًا عن الضغط عليه.
النوع | مطلوب |
---|---|
قيمة منطقية (bool) | لا |
الخاصية showSoftInputOnFocus
تمنع ظهور لوحة المفاتيح عند التركيز على العنصر TextInput
وذلك عندما تكون قيمتها false
، والقيمة الافتراضية هي true
.
النوع | مطلوب | نظام التشغيل |
---|---|---|
قيمة منطقية (bool) | لا | أندرويد |
الخاصية spellCheck
تستعمل لتشغيل أو تعطيل التدقيق الإملائي، وفي حال عدم تحديد قيمة لها فسترث قيمتها من الخاصية autoCorrect
.
النوع | مطلوب | نظام التشغيل |
---|---|---|
قيمة منطقية (bool) | لا | iOS |
الخاصية textAlign
تُستخدم لتحديد محاذاة النص داخل العنصر TextInput
. وتأخذ القيم:
left
center
right
النوع | مطلوب |
---|---|
('left', 'center', 'right')
|
لا |
الخاصية textContentType
تُعطي النظام معلومات متعلقة بدلالات النصوص المتوقَّع إدخالها من المستخدم.
في الإصدار 11 من نظام iOS وما بعده يمكن تحديد القيمة username
أو password
للخاصية textContentType
لتفعيل الملء التلقائي لبيانات الدخول (login).
في الإصدار 12 من نظام iOS وما بعده تُستخدم القيمة newPassword
للدلالة على كلمة مرور جديدة يُتوقَع إدخالها من المستخدم وتُحفظ في الجهاز.
تُستخدم القيمة oneTimeCode
للدلالة على إمكانية ملء الحقل تلقائيًا برمز يُرسل عن طريق رسالة نصية SMS.
لتعطيل الملء التلقائي تُستخدَم القيمة none
للخاصية textContentType
.
القيم المتاحة
none
URL
addressCity
addressCityAndState
addressState
countryName
creditCardNumber
emailAddress
familyName
fullStreetAddress
givenName
jobTitle
location
middleName
name
namePrefix
nameSuffix
nickname
organizationName
postalCode
streetAddressLine1
streetAddressLine2
sublocality
telephoneNumber
username
password
newPassword
oneTimeCode
النوع | مطلوب | نظام التشغيل |
---|---|---|
('none', 'URL', 'addressCity', 'addressCityAndState', 'addressState', 'countryName', 'creditCardNumber', 'emailAddress', 'familyName', 'fullStreetAddress', 'givenName', 'jobTitle', 'location', 'middleName', 'name', 'namePrefix', 'nameSuffix', 'nickname', 'organizationName', 'postalCode', 'streetAddressLine1', 'streetAddressLine2', 'sublocality', 'telephoneNumber', 'username', 'password')
|
لا | iOS |
الخاصية passwordRules
تُستعمل لإضافة شروط ينبغي تحقيقها حتى يكون النص المُدخل صالحًا.
النوع | مطلوب | نظام التشغيل |
---|---|---|
سلسلة نصية (string) | لا | iOS |
انظر قائمة الشروط
الخاصية style
تُستخدم لتطبيق أنماط معيّنة لتغيير شكل ومظهر حقل الإدخال TextInput
.
النوع | مطلوب |
---|---|
نص | لا |
انظر قائمة الأنماط.
الخاصية textBreakStrategy
تُستخدم لتحديد نقاط الفصل في النصوص (النقاط التي يتم عندها الانتقال لسطر جديد). ويمكن أخذ القيم التالية:
simple
highQuality
balanced
النوع | مطلوب | نظام التشغيل |
---|---|---|
سلسلة نصية (string) | لا | أندرويد |
الخاصية underlineColorAndroid
تُحدِّد لون الإطار السفلي للعنصر TextInput
.
النوع | مطلوب | نظام التشغيل |
---|---|---|
لون | لا | أندرويد |
الخاصية value
تُستخدم لتحديد قيمة إفتراضية للعنصر TextInput
.
النوع | مطلوب |
---|---|
سلسلة نصية (string) | لا |
ملاحظة: يجب التعامل مع هذه الخاصية بحذر، فاستعمالها بطريقة خاطئة قد يتسبب في منع المستخدم من تغيير القيمة الإفتراضية للحقل وغيرها من المشاكل الأخرى.
مرجع الدوال
الدالة ()focus.
focus();
تُستخدم لتحويل التركيز للعنصر الذي تُستدعى فيه.
الدالة ()blur.
blue();
تُستخدم لنقل التركيز بعيدًا عن العنصر الذي تُستدعى فيه.
الدالة ()clear
clear();
تُستخدم لمسح محتوى العنصر TextInput
.
الدالة ()isFocused
isFocused();
تُرجع القيمة true
إذا كان العنصر الذي استُدعيت فيه الدالة في وضع التركيز (focsed) وfalse
فيما عدا ذلك.