Nativescript RadDataForm小写字段电子邮件
现场电子邮件:Nativescript RadDataForm小写字段电子邮件,nativescript,nativescript-vue,Nativescript,Nativescript Vue,现场电子邮件: <TKEntityProperty v-tkDataFormProperty name="email" displayName imageResource="res://user" hintText="Email" index="0"> <TKPropertyEditor v-tkEntityPropertyEditor type="Email"> <TKPropertyEditorStyle v-tkPropertyEditorStyl
<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>
能否在Nativescript上的RadDataForm中设置autocapitalizationType=“none”?从今天开始,您可能希望对该问题进行投票并跟进
仍然可以访问本机编辑器对象并关闭自动大写
<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上默认为小写。我只是想发布一个答案,说明如何更改Android和iOS的键盘,以防对任何人都有帮助。我将NativeScript 7与Angular和TypeScript一起使用(但您也可以使用常规JavaScript),通过访问在RadDataForm
下使用的iOS和Android的本机元素,我实现了这一功能。我还能够找出TypeScript的类型,很高兴看到所有不同的InputType
可用*:
从“nativescript ui dataform”导入{DataFormEventData};
从'@nativescript/core/application'导入{ios};
// ... 在有角的组件内
public onEditorUpdate(dataFormEvent:DataFormEventData):无效{
如果(dataFormEvent.propertyName==='descriptionProperty'){
如果(ios){
const iosTextField=dataFormEvent.editor作为UITextField;
iosTextField.autocapitalizationType=UITextAutocapitalizationType.None;/“句子”、“单词”、“所有字符”或“无”
iosTextField.autocorrectionType=UITextAutocorrectionType.Yes;/“Yes”、“No”或“Default”
}否则{
const textEditor=dataFormEvent.editor作为com.telerik.widget.dataform.visualization.editors.DataFormTextEditor;
const androidEditText=textEditor.getEditorView()为android.widget.EditText;
androidEditText.setInputType(android.text.InputType.TYPE_text_VARIATION_NORMAL);//许多不同的选择参见android文档:https://developer.android.com/reference/android/text/InputType
}
}
}
*安卓InputType
选项,请参阅安卓文档:你能解释清楚吗每次数字的第一个字母都是大写的,我想要小写的。试试type='url'之类的。它必须工作,如果它不工作,那么下面是详细的答案。