Ios Nativescript TextFieldDiEndediting委托(位于TextFields上)

Ios Nativescript TextFieldDiEndediting委托(位于TextFields上),ios,uitextfield,nativescript,Ios,Uitextfield,Nativescript,每当textfield键入结束时,就会调用上面的核心方法,我试图通过 UITextFieldDelegateImpl.prototype.textFieldDidEndEditing = function (textField) { var owner = this._owner.get(); if (owner) { if (owner.updateTextTrigger === enums_1.UpdateTextTrigger.focusLost) {

每当textfield键入结束时,就会调用上面的核心方法,我试图通过

UITextFieldDelegateImpl.prototype.textFieldDidEndEditing = function (textField) {
    var owner = this._owner.get();
    if (owner) {
        if (owner.updateTextTrigger === enums_1.UpdateTextTrigger.focusLost) {
            owner._onPropertyChangedFromNative(text_base_1.TextBase.textProperty, textField.text);
        }
        owner.dismissSoftInput();
        if (owner.formattedText) {
            owner.formattedText.createFormattedStringCore();
        }
    }
};
但它没有锻炼

注意:我正在寻找另一种解决方案来获取textfield end edit事件(不是可观察的属性更改)

用法:文本字段的值应该介于5到50之间,如果它不在这个范围内,我必须显示一个弹出窗口,让用户从列表选择器中选择一个值


在上述情况下,属性更改(例如)如果用户想要输入15,首先他们会键入1,然后他们会键入5,因此每次检查在上述情况下都没有帮助。

我注意到您提到,您希望使用不同的方法来处理文本字段焦点丢失

但是,在nativescript中,最好的方法是将
updateexttrigger
设置为
focusLost
并处理TextField属性更改。我附上样本代码:

xml

TextField._delegate.textFieldDidEndEditing = function() {};
TextField.ios.delegate.textFieldDidEndEditing = function() {};

关于本主题,您能否提供更多信息,以了解处理文本字段焦点丢失的替代方法,而不是使用可观察的属性更改。

我注意到您提到,您希望使用不同的方法来处理文本字段焦点丢失

但是,在nativescript中,最好的方法是将
updateexttrigger
设置为
focusLost
并处理TextField属性更改。我附上样本代码:

xml

TextField._delegate.textFieldDidEndEditing = function() {};
TextField.ios.delegate.textFieldDidEndEditing = function() {};

关于该主题,您能否提供更多信息,以了解处理文本字段焦点丢失的替代方法,而不是使用可观察的属性更改。

首先感谢@Nikolay提供updateTextTrigger,我不知道该方法。我已经更新了寻找propertychange的说明。@Nilyaz,
propertychange
将在焦点丢失时被触发。在回调方法中,您可以检查
TextField
text
length
并显示
ListPicker
,如果需要的话。首先感谢@Nikolay提供了updatetextrigger,我不知道该方法。我已经更新了寻找propertychange的说明。@Nilyaz,
propertychange
将在焦点丢失时被触发。在回调方法中,您可以检查
TextField
text
length
并在需要时显示
ListPicker
import { EventData, PropertyChangeData } from 'data/observable';
import { Page } from 'ui/page';
import { HelloWorldModel } from './main-view-model';
import {Observable} from "data/observable";
import {TextField} from "ui/text-field";

export function navigatingTo(args: EventData) {
    /*
    This gets a reference this page's <Page> UI component. You can
    view the API reference of the Page to see what's available at
    https://docs.nativescript.org/api-reference/classes/_ui_page_.page.html
    */
    let page = <Page>args.object;
    var textfield:TextField = <TextField>page.getViewById("tx");
    textfield.on("propertyChange", ((args: PropertyChangeData) => {
        var tField:TextField = <TextField>args.object;
        console.log(tField.text);
    }));
}