RadDataForm в нижнем регистре в поле электронной почты

В поле электронной почты:

<TKEntityProperty v-tkDataFormProperty name="email" displayName imageResource="res://user" hintText="Email" index="0">
  <TKPropertyEditor v-tkEntityPropertyEditor type="Email">
    <TKPropertyEditorStyle v-tkPropertyEditorStyle labelWidth="4" />
  </TKPropertyEditor>
  <TKEmailValidator v-tkEntityPropertyValidators errorMessage="Invalid email"></TKEmailValidator>
</TKEntityProperty>

Можно ли установить autocapitalizationType = "none" в RadDataForm на Nativescript?


person snakom23    schedule 03.06.2019    source источник
comment
Вы можете объяснить это ясно?   -  person Vikas Acharya    schedule 03.06.2019
comment
Каждый раз, когда первая буква цифры является заглавной, я хочу строчные.   -  person snakom23    schedule 03.06.2019
comment
попробуйте type = 'url' или что-то в этом роде. он должен работать, и если это не сработало, то ниже приведен подробный ответ.   -  person Vikas Acharya    schedule 04.06.2019


Ответы (2)


На сегодняшний день это запрос на открытие функции, вы можете проголосовать за проблема и дальнейшие действия там.

Тем не менее вы можете получить доступ к собственному объекту редактора и отключить автоматическое использование заглавных букв.

<template>
    <Page class="page">
        <ActionBar title="Home" class="action-bar" />
        <RadDataForm :source="person" @editorUpdate="onEditorUpdate">
            <TKEntityProperty v-tkDataFormProperty name="email">
                <TKPropertyEditor v-tkEntityPropertyEditor type="Email">
                    <TKPropertyEditorStyle v-tkPropertyEditorStyle />
                </TKPropertyEditor>
            </TKEntityProperty>
        </RadDataForm>
    </Page>
</template>

<script>
    import Vue from "nativescript-vue";
    import RadDataForm from "nativescript-ui-dataform/vue";
    Vue.use(RadDataForm);

    import * as application from "tns-core-modules/application";

    export default {
        data() {
            return {
                person: {
                    email: ""
                }
            };
        },
        methods: {
            onEditorUpdate: function(args) {
                if (args.propertyName === "email") {
                    if (application.ios) {
                        args.editor.editor.autocapitalizationType =
                            UITextAutocapitalizationType.None;
                    }
                }
            }
        }
    };
</script>

Образец игровой площадки

Я считаю, что ваша проблема должна быть только с iOS, на Android по умолчанию нижний регистр.

person Manoj    schedule 04.06.2019

Я просто хотел опубликовать ответ, в котором также показано, как изменить клавиатуру как для Android, так и для iOS, если это кому-то поможет. Я использую NativeScript 7 с Angular и TypeScript (но вы также можете просто использовать обычный JavaScript), и я заставил его работать, получив доступ к собственным элементам iOS и Android, используемым в RadDataForm. Я также смог определить типы для TypeScript, что было действительно приятно видеть все доступные InputType *:

<RadDataForm [source]="item" (editorUpdate)="onEditorUpdate($event)">
    <TKEntityProperty tkDataFormProperty name="description"></TKEntityProperty>
</RadDataForm>
import { DataFormEventData } from 'nativescript-ui-dataform';
import { ios } from '@nativescript/core/application';

// ... inside an Angular component
  public onEditorUpdate(dataFormEvent: DataFormEventData): void {
    if (dataFormEvent.propertyName === 'descriptionProperty') {
      if (ios) {
        const iosTextField = dataFormEvent.editor as UITextField;
        iosTextField.autocapitalizationType = UITextAutocapitalizationType.None;  // "Sentences", "Words", "AllCharacters", or "None"
        iosTextField.autocorrectionType = UITextAutocorrectionType.Yes;  // "Yes", "No", or "Default"
      } else {
        const textEditor = dataFormEvent.editor as com.telerik.widget.dataform.visualization.editors.DataFormTextEditor;
        const androidEditText = textEditor.getEditorView() as android.widget.EditText;
        androidEditText.setInputType(android.text.InputType.TYPE_TEXT_VARIATION_NORMAL);  // Many difference choices see Android docs: https://developer.android.com/reference/android/text/InputType
      }
    }
  }

* Android InputType варианты, см. Документацию по Android: https://developer.android.com/reference/android/text/InputType

person RcoderNY    schedule 12.11.2020