From f00ec1a9666e48a881ad1b5c79f18bea86e46517 Mon Sep 17 00:00:00 2001 From: Eddy Verbruggen Date: Fri, 25 Aug 2017 10:22:47 +0200 Subject: [PATCH] Add a 'focus' even to text input fields (#4730) --- .../ui/editable-text-base/editable-text-base-common.ts | 1 + .../ui/editable-text-base/editable-text-base.android.ts | 1 + .../ui/editable-text-base/editable-text-base.d.ts | 1 + tns-core-modules/ui/text-field/text-field.ios.ts | 7 +++++++ tns-core-modules/ui/text-view/text-view.ios.ts | 5 +++-- 5 files changed, 13 insertions(+), 2 deletions(-) diff --git a/tns-core-modules/ui/editable-text-base/editable-text-base-common.ts b/tns-core-modules/ui/editable-text-base/editable-text-base-common.ts index 3060ad74d..495df9f91 100644 --- a/tns-core-modules/ui/editable-text-base/editable-text-base-common.ts +++ b/tns-core-modules/ui/editable-text-base/editable-text-base-common.ts @@ -5,6 +5,7 @@ export * from "../text-base"; export abstract class EditableTextBase extends TextBase implements EditableTextBaseDefinition { public static blurEvent = "blur"; + public static focusEvent = "focus"; public keyboardType: KeyboardType; public returnKeyType: ReturnKeyType; diff --git a/tns-core-modules/ui/editable-text-base/editable-text-base.android.ts b/tns-core-modules/ui/editable-text-base/editable-text-base.android.ts index c5333a7be..4ff920c34 100644 --- a/tns-core-modules/ui/editable-text-base/editable-text-base.android.ts +++ b/tns-core-modules/ui/editable-text-base/editable-text-base.android.ts @@ -77,6 +77,7 @@ function initializeEditTextListeners(): void { clearTimeout(dismissKeyboardTimeoutId); dismissKeyboardTimeoutId = undefined; } + owner.notify({ eventName: EditableTextBase.focusEvent, object: owner }); } else { if (owner._dirtyTextAccumulator || owner._dirtyTextAccumulator === "") { diff --git a/tns-core-modules/ui/editable-text-base/editable-text-base.d.ts b/tns-core-modules/ui/editable-text-base/editable-text-base.d.ts index d4da01d11..b97795310 100644 --- a/tns-core-modules/ui/editable-text-base/editable-text-base.d.ts +++ b/tns-core-modules/ui/editable-text-base/editable-text-base.d.ts @@ -9,6 +9,7 @@ import { TextBase, Property, CssProperty, Style, Color, FormattedString } from " */ export class EditableTextBase extends TextBase { public static blurEvent: string; + public static focusEvent: string; /** * Gets or sets the soft keyboard type. diff --git a/tns-core-modules/ui/text-field/text-field.ios.ts b/tns-core-modules/ui/text-field/text-field.ios.ts index 29e4c9718..25e08823c 100644 --- a/tns-core-modules/ui/text-field/text-field.ios.ts +++ b/tns-core-modules/ui/text-field/text-field.ios.ts @@ -33,6 +33,13 @@ class UITextFieldDelegateImpl extends NSObject implements UITextFieldDelegate { return true; } + public textFieldDidBeginEditing(textField: UITextField): void { + const owner = this._owner.get(); + if (owner) { + owner.notify({ eventName: TextField.focusEvent, object: owner }); + } + } + public textFieldDidEndEditing(textField: UITextField) { const owner = this._owner.get(); if (owner) { diff --git a/tns-core-modules/ui/text-view/text-view.ios.ts b/tns-core-modules/ui/text-view/text-view.ios.ts index 9f2364912..9bd944fe0 100644 --- a/tns-core-modules/ui/text-view/text-view.ios.ts +++ b/tns-core-modules/ui/text-view/text-view.ios.ts @@ -29,10 +29,11 @@ class UITextViewDelegateImpl extends NSObject implements UITextViewDelegate { return true; } - public textViewDidBeginEditing(textView: UITextView) { - var owner = this._owner.get(); + public textViewDidBeginEditing(textView: UITextView): void { + const owner = this._owner.get(); if (owner) { owner._isEditing = true; + owner.notify({ eventName: TextView.focusEvent, object: owner }); } }