@@ -7610,17 +7610,25 @@ void com_codename1_impl_ios_IOSNative_updateNativeEditorText___java_lang_String(
76107610 NSString* nsText = toNSString(CN1_THREAD_GET_STATE_PASS_ARG text);
76117611 NSString* currText = ((UITextView*)editingComponent).text;
76127612 if (![nsText isEqualToString:currText]) {
7613- UITextView *textView = (UITextView *)editingComponent;
7614-
7615- // Save current cursor position
7616- NSRange selectedRange = textView.selectedRange;
7617-
7618- // Update the text
7619- textView.text = nsText;
7620-
7621- // Restore the cursor position
7622- NSUInteger newPosition = MIN(selectedRange.location, textView.text.length);
7623- textView.selectedRange = NSMakeRange(newPosition, 0);
7613+ if ([editingComponent respondsToSelector:@selector(selectedRange)] &&
7614+ [editingComponent respondsToSelector:@selector(setSelectedRange:)]) {
7615+ UITextView *textView = (UITextView *)editingComponent;
7616+
7617+ // Save current cursor position
7618+ NSRange selectedRange = textView.selectedRange;
7619+
7620+ // Update the text
7621+ textView.text = nsText;
7622+
7623+ // Restore the cursor position
7624+ NSUInteger newPosition = MIN(selectedRange.location, textView.text.length);
7625+ textView.selectedRange = NSMakeRange(newPosition, 0);
7626+ } else if ([editingComponent respondsToSelector:@selector(setText:)]) {
7627+ // Fallback for UITextField, UILabel, or other classes supporting setText
7628+ [(id)editingComponent setText:nsText];
7629+ } else {
7630+ NSLog(@"editingComponent does not support text assignment");
7631+ }
76247632 }
76257633 }
76267634 POOL_END();
0 commit comments