12

Xcode 4.2 のプロジェクトにカスタム フォントを追加しようとしていますが、それを使用しようとすると、オブジェクトが nil であるというエラーが表示されます。

私は次のことを行いました:
1) .plist の「アプリケーションによって提供されるフォント」の値に行を追加しました: "LCDMono2 Ultra.ttf"
2) フォントをサポート ファイルに追加し、XCode で表示して、追加されたことを確認しました。
3) Get Info を使用して、フル ネームが「LCDMono2 Ultra」であることを確認しました。
4) プロジェクトに次のフォントを作成しました。

UIFont *myFont = [UIFont fontWithName:@"LCDMono2 Ultra" size:16];

そして私はこの変種を試しました:

UIFont *myFont = [UIFont fontWithName:@"LCDMono2 Ultra" size:16.f];

5) フォント名を使用しようとすると(addObject:myFont.fontName)'nil'エラーが発生しました。

エラーの原因は何ですか? 名前のスペースのようなものでしょうか?

4

7 に答える 7

13

私はこのまったく同じ問題を数時間抱えていて、上記のすべてを試してみましたが、何も機能しませんでした.フォントはどこにでも追加されていました. .

Xcode 5 で何かが変更されたようです。これを機能させるには、[情報] タブの下のターゲット プロパティにフォントを追加する必要がありましたが、以前は "appName-info.plist" に追加する必要がありました。下の画像を参照してください。

これが他の誰かに役立つことを願っています。

ここに画像の説明を入力

于 2013-12-02T17:03:50.137 に答える
13

プロジェクトに追加した後、フォントのフルネームのスペースが自動的に削除されました。元のフォント ファイルを確認したところ、スペースがそこにあるので、Apple はスペースを処理したくないに違いありません。参照を「LCDMono2Ultra」に変更したところ、機能しました。

于 2012-01-31T22:48:44.567 に答える
2

ブレークポイントを入れて、myFont の有効な UIFont オブジェクトを取得していることを確認しましたか。「LCDMono2 Ultra」は実際にはフォント ファミリ名であり、使用したいのは「LCDMono2 Ultra-normal」または「LCDMono2 Ultra-bold」のようなものである可能性が最も高いため、これはチェックする価値があります。Font Book で .ttf を開き、表示される情報を確認します。

または、Font Book で何も見つからない場合は、次のように呼び出してみてください。

NSArray *fonts = [UIFont fontNamesForFamilyName:"LCDMono2 Ultra"];

そして、デバッガーで配列フォントを印刷して、それらがどうあるべきかを確認します。

これがうまくいかない場合はお知らせください。何か他のことを考えてみます:)

于 2012-01-28T17:27:50.263 に答える