diff --git a/ui/editable-text-base/editable-text-base.android.ts b/ui/editable-text-base/editable-text-base.android.ts index 09b629d4a..b76a1318f 100644 --- a/ui/editable-text-base/editable-text-base.android.ts +++ b/ui/editable-text-base/editable-text-base.android.ts @@ -81,8 +81,10 @@ export class EditableTextBase extends common.EditableTextBase { if (actionId === android.view.inputmethod.EditorInfo.IME_ACTION_DONE || actionId === android.view.inputmethod.EditorInfo.IME_ACTION_GO || actionId === android.view.inputmethod.EditorInfo.IME_ACTION_SEARCH || - actionId === android.view.inputmethod.EditorInfo.IME_ACTION_SEND) { + actionId === android.view.inputmethod.EditorInfo.IME_ACTION_SEND || + actionId === android.view.inputmethod.EditorInfo.IME_ACTION_NEXT) { owner.dismissSoftInput(); + owner._onReturnPress(); } } @@ -96,6 +98,10 @@ export class EditableTextBase extends common.EditableTextBase { // abstract } + public _onReturnPress() { + // abstract + } + public _onDetached(force?: boolean) { this._imm = undefined; this._android = undefined; diff --git a/ui/text-field/text-field-common.ts b/ui/text-field/text-field-common.ts index 78bedd172..c7606ae5c 100644 --- a/ui/text-field/text-field-common.ts +++ b/ui/text-field/text-field-common.ts @@ -13,6 +13,8 @@ export var secureProperty = new dependencyObservable.Property( global.moduleMerge(textBase, exports); export class TextField extends editableTextBase.EditableTextBase implements definition.TextField { + public static returnPressEvent = "returnPress"; + constructor(options?: definition.Options) { super(options); } diff --git a/ui/text-field/text-field.android.ts b/ui/text-field/text-field.android.ts index e1c482c93..2f3990f75 100644 --- a/ui/text-field/text-field.android.ts +++ b/ui/text-field/text-field.android.ts @@ -49,4 +49,8 @@ export class TextField extends common.TextField { this.android.setMaxLines(1); this.android.setHorizontallyScrolling(true); } + + public _onReturnPress() { + this.notify({ eventName: TextField.returnPressEvent, object: this }) + } } \ No newline at end of file diff --git a/ui/text-field/text-field.d.ts b/ui/text-field/text-field.d.ts index b02c3647b..f61ff94af 100644 --- a/ui/text-field/text-field.d.ts +++ b/ui/text-field/text-field.d.ts @@ -8,6 +8,8 @@ declare module "ui/text-field" { * Represents an editable text field. */ export class TextField extends editableTextBase.EditableTextBase { + public static returnPressEvent: string; + constructor(options?: editableTextBase.Options); /** diff --git a/ui/text-field/text-field.ios.ts b/ui/text-field/text-field.ios.ts index 09264e5d1..dcee39134 100644 --- a/ui/text-field/text-field.ios.ts +++ b/ui/text-field/text-field.ios.ts @@ -50,6 +50,7 @@ class UITextFieldDelegateImpl extends NSObject implements UITextFieldDelegate { public textFieldShouldReturn(textField: UITextField): boolean { // Called when the user presses the return button. this._owner.dismissSoftInput(); + this._owner.notify({ eventName: TextField.returnPressEvent, object: this._owner }); return true; }