From 8af85fd7de44b069017a38725d1095fe8d2bd73e Mon Sep 17 00:00:00 2001 From: Carl de Billy Date: Tue, 9 Feb 2021 15:26:35 -0500 Subject: [PATCH] fix(textbox): [MacOS] Allow to appear on multi-lines when not focused. --- .../TextBox/Input_Multiline.xaml | 36 +++++++++++++++---- .../TextBox/Input_Multiline.xaml.cs | 4 +-- .../UI/Xaml/Controls/TextBox/TextBox.macOS.cs | 14 ++++---- 3 files changed, 39 insertions(+), 15 deletions(-) diff --git a/src/SamplesApp/UITests.Shared/Windows_UI_Xaml_Controls/TextBox/Input_Multiline.xaml b/src/SamplesApp/UITests.Shared/Windows_UI_Xaml_Controls/TextBox/Input_Multiline.xaml index a8d3ba318a91..991b006055a9 100644 --- a/src/SamplesApp/UITests.Shared/Windows_UI_Xaml_Controls/TextBox/Input_Multiline.xaml +++ b/src/SamplesApp/UITests.Shared/Windows_UI_Xaml_Controls/TextBox/Input_Multiline.xaml @@ -1,4 +1,4 @@ - - - + TextWrapping="Wrap" / AcceptsReturn="True" + + TextWrapping="WrapWholeWords" / AcceptsReturn="True" + + TextWrapping="Wrap" / AcceptsReturn="False" + + TextWrapping="WrapWholeWords" / AcceptsReturn="False" + - + - + diff --git a/src/SamplesApp/UITests.Shared/Windows_UI_Xaml_Controls/TextBox/Input_Multiline.xaml.cs b/src/SamplesApp/UITests.Shared/Windows_UI_Xaml_Controls/TextBox/Input_Multiline.xaml.cs index e81c09b71dfe..76a1c084d163 100644 --- a/src/SamplesApp/UITests.Shared/Windows_UI_Xaml_Controls/TextBox/Input_Multiline.xaml.cs +++ b/src/SamplesApp/UITests.Shared/Windows_UI_Xaml_Controls/TextBox/Input_Multiline.xaml.cs @@ -4,8 +4,8 @@ namespace Uno.UI.Samples.Content.UITests.TextBoxControl { - [SampleControlInfo("TextBox", "Input_Multiline", typeof(TextBoxViewModel))] - public sealed partial class Input_Multiline : UserControl + [Sample("TextBox", ViewModelType = typeof(TextBoxViewModel))] + public sealed partial class Input_Multiline : Page { public Input_Multiline() { diff --git a/src/Uno.UI/UI/Xaml/Controls/TextBox/TextBox.macOS.cs b/src/Uno.UI/UI/Xaml/Controls/TextBox/TextBox.macOS.cs index 4cb6c8b65d06..63375e7cfd61 100644 --- a/src/Uno.UI/UI/Xaml/Controls/TextBox/TextBox.macOS.cs +++ b/src/Uno.UI/UI/Xaml/Controls/TextBox/TextBox.macOS.cs @@ -43,15 +43,11 @@ protected TextBox(bool isPassword) else { _textBoxView.BecomeFirstResponder(); - } } } - public override bool BecomeFirstResponder() - { - return (_textBoxView?.BecomeFirstResponder()).GetValueOrDefault(false); - } + public override bool BecomeFirstResponder() => _textBoxView?.BecomeFirstResponder() ?? false; partial void OnAcceptsReturnChangedPartial(DependencyPropertyChangedEventArgs e) { @@ -84,7 +80,13 @@ private void UpdateTextBoxView() } else { - _textBoxView = new TextBoxView(this) { UsesSingleLineMode = AcceptsReturn || TextWrapping != TextWrapping.NoWrap }; + var textWrapping = TextWrapping; + var usesSingleLineMode = !(AcceptsReturn || textWrapping != TextWrapping.NoWrap); + _textBoxView = new TextBoxView(this) + { + UsesSingleLineMode = usesSingleLineMode, + LineBreakMode = textWrapping == TextWrapping.WrapWholeWords ? NSLineBreakMode.ByWordWrapping : NSLineBreakMode.CharWrapping, + }; } _contentElement.Content = _textBoxView;