[Info] Spelling checking in FireMonkey macOS
Posted: Tue Nov 01, 2022 12:02 pm
In FireMonkey for macOS, the platform offers a spelling checking service, so text components (including TMemo and TRichViewEdit v20.5.1+) can use it.
Unfortunately, the default implementation of this service has several problems that make it almost unusable.
See https://quality.embarcadero.com/browse/RSP-39832
There is a workaround that solves the most important problem. It turns on language auto-detection instead of using two preferred dictionaries.
Add this code to your main form's unit.
Unfortunately, the default implementation of this service has several problems that make it almost unusable.
See https://quality.embarcadero.com/browse/RSP-39832
There is a workaround that solves the most important problem. It turns on language auto-detection instead of using two preferred dictionaries.
Add this code to your main form's unit.
Code: Select all
uses
...
FMX.Platform,
{$IFDEF MACOS}FMX.SpellChecker.Mac,{$ENDIF}
...;
{$IFDEF MACOS}
procedure SetMacSpellCheckerLanguageDetection;
var
Svc: TMacSpellCheckerService;
begin
TPlatformServices.Current.RemovePlatformService(IFMXSpellCheckerService);
Svc := TMacSpellCheckerService.Create;
Svc.MaxUsedPrefferedLanguagesCount := 0; // language auto-detection
TPlatformServices.Current.AddPlatformService(IFMXSpellCheckerService, Svc);
end;
{$ENDIF}
initialization
{$IFDEF MACOS}
SetMacSpellCheckerLanguageDetection;
{$ENDIF}