66

UI にストーリーボードを使用しています。以前は XCode 4.6 を使用し、iOS 6 でリリースしました。その後、XCode 5 を使用して iOS 7 に更新し、XCode 5 でうまく動作するようにストーリーボードを更新しました。ただし、1 つの問題があります。

UITextViewコード内でフォントの変更を表示したくありません。テキストの色の変更は正常に機能します。その他のプロパティの変更は問題ありません。フォント、まったくありません。カスタム フォントを使用していたので、サイズの異なるさまざまなフォント (つまりsystemFontOfSize:) をチェックしましたが、うまくいきませんでした。テキスト ビューには、ストーリーボードで設定されているフォントのみが表示されます。ここで何が欠けているのでしょうか? この種のことを台無しにする自動レイアウトの制約はありますか? 移行中に制約に関する問題がいくつかありましたが、前述したように、フォントは iOS 7 で正常に動作します。

UIViewControllerコードでテキストビューを作成して追加したかのように、ストーリーボードに欠けているものだと思いますが、正常に動作します。

いくつかのコードを書きましたが、この場合に役立つかどうかはわかりません。

4

12 に答える 12

114

さらに奇妙なことに、これは iPhone でのみ発生し、iPad では発生しません。

コードでフォントを設定していて、編集可能なテキスト ビューが必要ない場合は、次のようにします。

textView.editable = YES;
textView.font = newFont;
textView.editable = NO;
于 2013-10-03T20:27:01.263 に答える
74

私の場合は、UITextView の「selectable」プロパティの問題です。

そこで、ストーリーボード エディターで UITextView の「選択可能な」プロパティをチェックして、YES に設定しました。 選択可能にするには

その後、viewWillAppear でこのプロパティを NO に設定します。

textview.text = @"some text";
textview.selectable = NO;
于 2013-12-17T06:38:19.717 に答える
56

この問題はeditable、ストーリーボードでプロパティが false であることが原因でした。これによりフォントが変更されない理由がまったくわかりません-iOS 6でのみ.

于 2013-10-01T11:04:57.310 に答える
13

すべての回答ありがとうございます。問題はまだ iOS9 に存在します。私が見つけたのは、Interface Builder で" User Interaction Enabled = false " を設定すると、 EditableおよびSelectable = true のままにしておくことができ、ユーザーはテキスト ビューを編集できないということです。

だから、私の解決策は次のとおりです。

  1. IB でUser Interaction Enabled = Falseを設定
  2. IB でEditable = Trueに設定
  3. IB でSelectable = Trueを設定する
  4. テキスト ビューを任意の方法で構成します。
于 2016-03-10T14:53:01.030 に答える
7

フォントサイズが無視されていることがわかりました。これは、Selectable (ストーリーボード内で UITextView を選択した) というチェックボックスをオンにすることで解決されました。

于 2015-09-23T19:37:28.760 に答える
5

この問題は、Interface Builder で Selectable プロパティを FALSE に設定した場合にのみ発生します。

Editable および Selectable プロパティを FALSE に設定する必要がある場合は、Interface Builder ではなくコードから実行します。

要約すると、Interface BuilderでEditable and Selectable properties = YESにしてから、プロパティを FALSE にする必要がある場合に備えて、次のコードを追加します。

_textView.editable   = NO;
_textView.selectable = NO;

お役に立てれば、

于 2016-01-01T19:08:41.277 に答える
0

私の場合(Xcode 7.3、iOS 9で開発)、

原因は、テキストと font-family/size を設定する順序であり、編集可能または選択可能な多くの回答のオプションではありません。

のように入力すると

[myTextView setFont:[UIFont fontWithName:@"HelveticaNeue-Italic" size:20]];
myTextView.attributedText = mAttStr;

フォントのファミリとサイズは変更されませんが、それ以外の場合は、これらの 2 つの手順を逆にすると機能します。テキストの設定は、フォントのファミリ/サイズの設定よりも先に行う必要があります。

于 2016-04-09T07:51:04.533 に答える