As I’ve no development I feel like doing on my app at the minute, I decided it was the time to attempt the conversion. A number of things have cropped up.
Start with two copies of the project. One is for trying things, the other is for applying permanent conversion steps to. I have a number of small windows with only a few controls in each; these converted easily, with no compilation errors, and worked OK when tested. Such steps can then be applied to the clean copy. Having done that, SAVE! This then becomes a new baseline.
Life then gets harder. I had one window with a number of controls; when converted as a whole, some labels lost their alighment (it went back to default), or their text which went back to untitled’. Other items acquired a focus ring they didn’t previously have. All these can be fixed and then a new baseline saved.
Don’t trust Undo: it’s OK to try a conversion, see what problems it gives, perhaps undo the conversion, try converting something else. If that step works OK, apply it to the clean copy. Never Undo a conversion on the clean copy. I must have done this by mistake at some point and ended up with a control set of two radio buttons, which had indices of 6 and 7 rather than 0 and 1. I couldn’t find any way to fix the indices other than by re-creating the control set.
It may be necessary to duplicate some items, having one for API1 and the other for API2, to avoid running into needing cascading changes which run into a brick wall. It may help to convert a small number of individual controls or perhaps just a window itself by editing its super in the inspector. In the latter case you’ll need to reimplement and events which need changing. Open, for example - copy the code in the Open event, add the Opening event to the Window, and paste the code into it. Then delete the Open event handler.
I wanted to convert the main window this way, but had an issue with the Apps main menu bar. I tried converting the menubar but it refuses if there are unconverted windows. And that left it in a state which appeared not to be undo-able.
Remember to compile and run at each stage, and changes that move you forward can then be applied to the clean copy. So far I’m down from over 6000 warnings to around 2600.