0

ここで少し問題があります。これらのフォントのフォント名を表示する NSTextField を持つビューのコレクションを持つ NSCollectionView があります。スクリーンショットは次のとおりです。 スクリーン

ご覧のように、一部のフォントは正しく表示されず、Interface Builder のフォント サイズが背後にあります。このコードを使用してinitWithFrame:、NSTextFieldのフォント サイズを設定します。

  float targetWidth = rect.size.width - 10;
  float targetHeight = rect.size.height - 10;

  int i;
  for (i = 10; i < 100; i++) {
    NSDictionary *attrs = [[NSDictionary alloc] initWithObjectsAndKeys:[NSFont fontWithName:[self.font fontName] size:i], NSFontAttributeName, nil];
    NSSize strSize = [[self stringValue] sizeWithAttributes:attrs];
    [attrs release];
    if (strSize.width > targetWidth || strSize.height > targetHeight) {
      break;
    }
  }

  [self setFont:[NSFont fontWithName:[self.font fontName] size:(i - 1)]];

どうすればこれを修正できますか? ひどいですね。前もって感謝します。

4

1 に答える 1

0

これは、コレクションビューのアニメーション方法に問題があるように思われます。プロトタイプコレクションアイテムビューでwantsLayersをオンにしましたか?オフにしてみてください。また、テキストフィールドの背後に不透明なビューを配置して、コレクションビュー自体に至るまで透明性がないようにして、状況が改善されることを確認してください。

それでも問題が解決しない場合は、テキストフィールドの-initWithFrame:メソッドを使用している理由と正確な方法を明確にしてください...奇妙な方法のようです。

于 2011-04-05T15:34:20.527 に答える