XojoでOSX用のデスクトップアプリをビルドすると、TextAreaクラスはNSTextViewになります。
NSTextViewには自動置換機能があり、その内訳はコンテクストメニューで確認できます。
アプリによっては、この機能で勝手に文字を変えられると困る場合があります。とくに「スマート引用符」は、ASCII引用符を手入力すると、起こしと受けを区別したものへ自動的に変えられます。
これらを厳密に区別してTextAreaに入力するなら、この機能を最初からOFFにしておきたいところです。ユーザ側のシステム環境設定で設定は可能ですが、やはりアプリ側でデフォルトをOFFにしておきたい。
XojoのTextAreaクラスには、このプロパティがないので、Objective-CのコードをDeclareで実装することになります。
' TextAreaのOpenイベントに直接書いた場合
Declare Function documentView Lib "Cocoa" selector "documentView" (objRef as Integer) as Ptr
Declare Sub setAutomaticQuoteSubstitutionEnabled Lib "Cocoa" selector "setAutomaticQuoteSubstitutionEnabled:" (objRef as Ptr, value as Boolean)
Dim TextViewRef as Ptr = documentView( me.Handle )
setAutomaticQuoteSubstitutionEnabled( TextViewRef, False )
他の自動置換やお節介機能も上記と同様にすれば無効にできます。
- setAutomaticDashSubstitutionEnabled
- setAutomaticSpellingCorrectionEnabled
- setAutomaticTextReplacementEnabled
- setContinuousSpellCheckingEnabled
- setSmartInsertDeleteEnabled