`TextInputCanvas` port to iOS

Having just released an open source code editor (BCE) for the desktop, I’ve turned my attention to iOS.

BCE is a subclass of TextInputCanvas (so is technically Canvas-based). For those of you who don’t know, TextInputCanvas is an open source plugin originally created by Xojo and now maintained by @Björn_Eiríksson.

Since MobileCanvas doesn’t support any form of keyboard events (like the desktop Canvas does), I was wondering if anyone has the skill set to take a look at Björn’s TextInputCanvas and see if it’s possible to port it to iOS now that iOS supports plugins? I have spoken to Björn but he is not familiar with writing iOS plugins.

I will of course pay for the port but I will open source it afterwards so everyone can benefit.

I’m hoping to port my code editor to iOS for all to use.

2 Likes

It may not be necessary to resort to a textinputcanvas. iOSTextArea (UITextView) is perfectly able to display rich text. Early research back in 2015 with Jean Paul Devulder showed the control was perfectly able to show all the fonts and styles available.

Unfortunately Jean Paul has since stopped supporting Xojo, and that early research was in 32 bits, so it could no longer be used.

But I am convinced a programmer familiar enough with Objective-C or Swift could easily extend iOSTextArea.

https://developer.apple.com/documentation/uikit/uitextview

UITextView can support rich text, but it is not cross platform. You can have rich text on macOS by using NSTextView either with TextArea and declares or with NSTextViewMBS. But what about Windows and Linux. At this moment it is not possible to have a common rich text editor between desktop and iOS. GraffitiSuite has a html based editor on desktop but it can not be used on iOS due to the htmlviewer limitations on iOS. FTC relies on TextInputCanvas and is therefore limited to desktop.

I doubt an iOS TextInputCanvas is even feasible.

Hmmm. This exposing my lack of experience working with iOS projects with Xojo.

Perhaps the way to go is not to shoe-horn a code editor into an iOSTextArea but to roll my own using the MobileCanvas? I have already written the code for drawing to a canvas, an undo mechanism and text data storage. I guess that leaves figuring out interpreting gestures as selecting text, etc. Is it possible with the MobileCanvas?

Well, Mobile canvas has PointerDown, PointerUp and PointerDrag instead of MouseDown, MouseUp, MouseDrag and MouseMove with different signatures.

Other tools make the framework handle the diferences but in xojo the MobileCanvas is way to different and with no keyboard events. Maybe as you said, an iOS plugin that exposes the native image view adding the event handlers and expose the same event names than the desktop flavor of the canvas :thinking:

61968 - MobileCanvas: Add the feature to show the Keyboard and access its input
<https://xojo.com/issue/61968>

2 Likes

I’ve added the maximum amount of points I can to this feedback request.

1 Like

Are 61968 and 62344 duplicates ?

I think 62344 is asking for formal support of the TextInputCanvas plugin on the desktop. This is about supporting text input in a canvas on iOS (+/- Android).

Thanks, I added the maximum amount of points to 61968.

2 Likes

I added to the request that this feature needs to cover iOS plugin control also, there is same need there for Keyboard as on Canvas. (iOS Plugin control more or less has same hooks as Canvas as is now)

1 Like