mirror of
https://github.com/NativeScript/NativeScript.git
synced 2025-11-05 13:26:48 +08:00
feat(css): support for text-overflow (#10369)
This commit is contained in:
@@ -2,7 +2,7 @@ import { ControlStateChangeListener } from '../core/control-state-change';
|
||||
import { ButtonBase } from './button-common';
|
||||
import { View, PseudoClassHandler } from '../core/view';
|
||||
import { backgroundColorProperty, borderTopWidthProperty, borderRightWidthProperty, borderBottomWidthProperty, borderLeftWidthProperty, paddingLeftProperty, paddingTopProperty, paddingRightProperty, paddingBottomProperty } from '../styling/style-properties';
|
||||
import { textAlignmentProperty, whiteSpaceProperty } from '../text-base';
|
||||
import { textAlignmentProperty, whiteSpaceProperty, textOverflowProperty } from '../text-base';
|
||||
import { layout } from '../../utils';
|
||||
import { CoreTypes } from '../../core-types';
|
||||
import { Color } from '../../color';
|
||||
@@ -219,17 +219,42 @@ export class Button extends ButtonBase {
|
||||
}
|
||||
|
||||
[whiteSpaceProperty.setNative](value: CoreTypes.WhiteSpaceType) {
|
||||
this.adjustLineBreak();
|
||||
}
|
||||
|
||||
[textOverflowProperty.setNative](value: CoreTypes.TextOverflowType) {
|
||||
this.adjustLineBreak();
|
||||
}
|
||||
|
||||
private adjustLineBreak() {
|
||||
const whiteSpace = this.whiteSpace;
|
||||
const textOverflow = this.textOverflow;
|
||||
const nativeView = this.nativeViewProtected.titleLabel;
|
||||
switch (value) {
|
||||
switch (whiteSpace) {
|
||||
case 'normal':
|
||||
nativeView.lineBreakMode = NSLineBreakMode.ByWordWrapping;
|
||||
nativeView.numberOfLines = this.maxLines;
|
||||
break;
|
||||
case 'nowrap':
|
||||
case 'initial':
|
||||
nativeView.lineBreakMode = NSLineBreakMode.ByTruncatingMiddle;
|
||||
nativeView.numberOfLines = 1;
|
||||
break;
|
||||
case 'nowrap':
|
||||
switch (textOverflow) {
|
||||
case 'clip':
|
||||
nativeView.lineBreakMode = NSLineBreakMode.ByClipping;
|
||||
nativeView.numberOfLines = this.maxLines;
|
||||
break;
|
||||
case 'ellipsis':
|
||||
nativeView.lineBreakMode = NSLineBreakMode.ByTruncatingTail;
|
||||
nativeView.numberOfLines = 1;
|
||||
break;
|
||||
default:
|
||||
nativeView.lineBreakMode = NSLineBreakMode.ByTruncatingMiddle;
|
||||
nativeView.numberOfLines = 1;
|
||||
break;
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user