MacRubyでカスタムフォントの埋め込み

MacRubyアプリで、カスタムの埋め込みフォントを使いたい場合、ユーザーにフォントをインストールしてもらう必要はありません。

リソースフォルダに、フォントファイルを置いて、以下のコードを用いるだけです。

font_location = NSBundle.mainBundle.pathForResource('MyCustomFont', ofType: 'ttf')
font_url = NSURL.fileURLWithPath(font_location)
# in MacRuby, always make sure that cocoa constants start by an uppercase
CTFontManagerRegisterFontsForURL(font_url, KCTFontManagerScopeProcess, nil)

これで、カスタムフォントが利用可能になりました。そして、テキストフィールドのインスタンスのフォントを以下のように設定します。

text_field.font = NSFont.fontWithName('MyCustomFont', size:24)

一つだけ注意すべきなのは、Cocoa APIの呼び出しに関して、Cocoa APIリファレンスではkCTFontManagerScopeProcessとしているところを、Rubyでは、定数が大文字から始まるので、KCTFontManagerScopeProcessとしなければなりません。

Embed a custom font