mirror of
https://github.com/NativeScript/NativeScript.git
synced 2025-08-16 03:31:45 +08:00
36 lines
1.4 KiB
TypeScript
36 lines
1.4 KiB
TypeScript
import common = require("./text-base-common");
|
|
import types = require("utils/types");
|
|
import dependencyObservable = require("ui/core/dependency-observable");
|
|
|
|
export class TextBase extends common.TextBase {
|
|
public _onTextPropertyChanged(data: dependencyObservable.PropertyChangeData) {
|
|
var newValue = types.isNullOrUndefined(data.newValue) ? "" : data.newValue + "";
|
|
this.ios.text = newValue;
|
|
this.style._updateTextDecoration();
|
|
this.style._updateTextTransform();
|
|
}
|
|
|
|
public _setFormattedTextPropertyToNative(value) {
|
|
var newText = value ? value._formattedText : null;
|
|
this.ios.attributedText = newText;
|
|
this.style._updateTextDecoration();
|
|
this.style._updateTextTransform();
|
|
this.requestLayout();
|
|
}
|
|
|
|
private _settingFormattedTextPropertyToNative = false;
|
|
public _onStylePropertyChanged(property: dependencyObservable.Property): void {
|
|
if (this._settingFormattedTextPropertyToNative) {
|
|
// Guard against stack-overflow.
|
|
return;
|
|
}
|
|
|
|
if (this.formattedText) {
|
|
// Re-apply the formatted text to override style changes if needed.
|
|
// https://github.com/NativeScript/NativeScript/issues/1078
|
|
this._settingFormattedTextPropertyToNative = true;
|
|
this._setFormattedTextPropertyToNative(this.formattedText);
|
|
this._settingFormattedTextPropertyToNative = false;
|
|
}
|
|
}
|
|
} |