web-dev-qa-db-ja.com

UITextViewフォントはnilです

ストーリーボードにフォントサイズ14のUITextViewを作成し、ViewControllerのdetailDescriptionLabelプロパティに接続しました。このコードはviewDidLoadにあります:

self.detailDescriptionLabel.font=[UIFont systemFontOfSize:10];
NSLog(@"text is %@; font is %@", self.detailDescriptionLabel.text, self.detailDescriptionLabel.font);

コンソール出力は次のとおりです。

text is Lorem Ipsum; font is (null)

フォントがnilに設定されているのはなぜですか? setFont:は機能しています。フォントは縮小します。フォントを取得したいので、ジェスチャーの後でフォントのlineHeightを呼び出すことができます。このようにして、次のコードでどの行がタップされたかを確認できます。

int line = [tap locationInView:tap.view].y / self.detailDescriptionLabel.font.lineHeight;

ここでも、フォントはnilです。 lineは-2147483648に設定されていますが、これは明らかに私が望むものではありません。

34
L D

InterfaceBuilderでこのUITextViewの「選択可能」チェックボックスをオンにしてみてください。これは、属性インスペクターにあります。以下の@VahramDodoryanのコメントによると、選択をサポートしたくない場合は、selectableをfalseに設定できます。

これが機能する理由を説明することはできませんが、おそらくUIKitのバグです。フォントプロパティがnilであるIBOutletからUITextViewがあり、afterそのtextプロパティが設定されていました。試行錯誤しながらこの解決策にたどり着きました。


IOSの最近のリリースでこの問題が引き続き発生する場合は、レーダーを開くことを検討してください。

115
Ty Cobb

テキストビューにあるすべてのプロパティと制約を変更してみました。

上記のように選択可能なものを含む

結局、欲求不満でそれを削除して再度追加しましたが、それは満足のいく修正ではありませんでした。

0
Ryan Heitner