From b9f3249ef19d30dcafe3cc92ffec895fc9f034ac Mon Sep 17 00:00:00 2001 From: Steve Hannah Date: Wed, 5 Mar 2025 19:56:32 -0800 Subject: [PATCH 1/2] fix: [3851] fix regression crash in ios text fields --- Ports/iOSPort/nativeSources/IOSNative.m | 30 ++++++++++++++++--------- 1 file changed, 19 insertions(+), 11 deletions(-) diff --git a/Ports/iOSPort/nativeSources/IOSNative.m b/Ports/iOSPort/nativeSources/IOSNative.m index 2c06eb022a..e58c07fcd8 100644 --- a/Ports/iOSPort/nativeSources/IOSNative.m +++ b/Ports/iOSPort/nativeSources/IOSNative.m @@ -7610,17 +7610,25 @@ void com_codename1_impl_ios_IOSNative_updateNativeEditorText___java_lang_String( NSString* nsText = toNSString(CN1_THREAD_GET_STATE_PASS_ARG text); NSString* currText = ((UITextView*)editingComponent).text; if (![nsText isEqualToString:currText]) { - UITextView *textView = (UITextView *)editingComponent; - - // Save current cursor position - NSRange selectedRange = textView.selectedRange; - - // Update the text - textView.text = nsText; - - // Restore the cursor position - NSUInteger newPosition = MIN(selectedRange.location, textView.text.length); - textView.selectedRange = NSMakeRange(newPosition, 0); + if ([editingComponent respondsToSelector:@selector(selectedRange)] && + [editingComponent respondsToSelector:@selector(setSelectedRange:)]) { + UITextView *textView = (UITextView *)editingComponent; + + // Save current cursor position + NSRange selectedRange = textView.selectedRange; + + // Update the text + textView.text = nsText; + + // Restore the cursor position + NSUInteger newPosition = MIN(selectedRange.location, textView.text.length); + textView.selectedRange = NSMakeRange(newPosition, 0); + } else if ([editingComponent respondsToSelector:@selector(setText:)]) { + // Fallback for UITextField, UILabel, or other classes supporting setText + [(id)editingComponent setText:nsText]; + } else { + NSLog(@"editingComponent does not support text assignment"); + } } } POOL_END(); From 602165fd4da7b0701fc9e4dee9a6e26651b30d41 Mon Sep 17 00:00:00 2001 From: Steve Hannah Date: Thu, 6 Mar 2025 05:01:20 -0800 Subject: [PATCH 2/2] updated cache to v4 in workflow --- .github/workflows/pr.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/pr.yml b/.github/workflows/pr.yml index ea8d95ff83..73be8315a4 100644 --- a/.github/workflows/pr.yml +++ b/.github/workflows/pr.yml @@ -21,7 +21,7 @@ jobs: java-version: 1.8 java-package: jdk+fx - name: Cache Maven dependencies - uses: actions/cache@v2 + uses: actions/cache@v4 with: path: ~/.m2 key: ${{ runner.os }}-m2-${{ hashFiles('**/pom.xml') }}