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 }); } }