# HG changeset patch # User bsmith@81767d24-ef19-dc11-ae90-00e081727c95 # Date 1617575053 0 # Node ID 4f078d24fe837c81ffb42d9718540427dc847a4c # Parent 6220f058008836402646c67aafefee10ea972c2c iOS: Correct _dw_text_handle() behavior. Add UILabel/UITextView to controls for dw_window_g/set_text(). Remove UIWindow since it would crash. diff -r 6220f0580088 -r 4f078d24fe83 ios/dw.m --- a/ios/dw.m Sun Apr 04 19:06:23 2021 +0000 +++ b/ios/dw.m Sun Apr 04 22:24:13 2021 +0000 @@ -3162,18 +3162,23 @@ /* Return the handle to the text object */ id _dw_text_handle(id object) { - if([object isMemberOfClass:[ DWSpinButton class]]) + if([object isMemberOfClass:[DWButton class]]) + { + DWButton *button = object; + object = [button titleLabel]; + } + else if([object isMemberOfClass:[DWSpinButton class]]) { DWSpinButton *spinbutton = object; object = [spinbutton textfield]; } #if 0 /* TODO: Fix this when we have a groupbox implemented */ - if([object isMemberOfClass:[ NSBox class]]) + if([object isMemberOfClass:[NSBox class]]) { NSBox *box = object; id content = [box contentView]; - if([content isMemberOfClass:[ DWText class]]) + if([content isMemberOfClass:[DWText class]]) { object = content; } @@ -8098,21 +8103,22 @@ id object = _dw_text_handle(handle); char *retval = NULL; - if([ object isKindOfClass:[ UIWindow class ] ] || [ object isKindOfClass:[ UIButton class ] ]) - { - id window = object; - NSString *nsstr = [ window title]; - - retval = strdup([ nsstr UTF8String ]); - } - else if([ object isKindOfClass:[ UIControl class ] ]) + if([object isKindOfClass:[UILabel class]] || [object isKindOfClass:[UITextField class]]) + { + NSString *nsstr = [object text]; + + retval = strdup([nsstr UTF8String]); + } +#ifdef DW_INCLUDE_DEPRECATED + else if([object isKindOfClass:[UIControl class]]) { UIControl *control = object; NSString *nsstr = [control text]; if(nsstr && [nsstr length] > 0) - retval = strdup([ nsstr UTF8String ]); - } + retval = strdup([nsstr UTF8String]); + } +#endif DW_FUNCTION_RETURN_THIS(retval); } @@ -8130,13 +8136,15 @@ DW_FUNCTION_INIT; id object = _dw_text_handle(handle); - if([ object isKindOfClass:[ UIWindow class ] ] || [ object isKindOfClass:[ UIButton class ] ]) - [object setTitle:[NSString stringWithUTF8String:text]]; - else if([ object isKindOfClass:[ UIControl class ] ]) + if([object isKindOfClass:[UILabel class]] || [object isKindOfClass:[UITextField class]]) + [object setText:[NSString stringWithUTF8String:text]]; +#ifdef DW_INCLUDE_DEPRECATED + else if([object isKindOfClass:[UIControl class]]) { UIControl *control = object; [control setText:[NSString stringWithUTF8String:text]]; } +#endif else return; /* If we changed the text... */