@@ -7610,17 +7610,25 @@ void com_codename1_impl_ios_IOSNative_updateNativeEditorText___java_lang_String(
7610
7610
NSString* nsText = toNSString(CN1_THREAD_GET_STATE_PASS_ARG text);
7611
7611
NSString* currText = ((UITextView*)editingComponent).text;
7612
7612
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
+ }
7624
7632
}
7625
7633
}
7626
7634
POOL_END();
0 commit comments