2

Xcode 8 のウィザードで作成された NSDocuments & ストーリーボード アプリがあります。ViewController シーンに NSTextView を追加しました。太字や斜体など、特定のメニュー項目が無効になっています。

First Responder を見ると、太字と斜体のアクションがありません。これらのメソッドを自分で作成する必要がありますか? これは、レスポンダー チェーンが正しく設定されていないためですか? 下線は表示されるのに太字が表示されないのはなぜですか?

編集: インスペクタ バーでテキストを編集する方法を示す画像を追加しましたが、[書式] メニューに期待するコマンドが表示されません。

下線を除いて、メニューではなくインスペクターバーでテキストを変更する方法を示す画像

4

2 に答える 2

8

この問題には歴史的な (?) 理由があります。メイン メニューが xib ファイルで作成されると、xib ファイルには自動的に NSFontManager インスタンスが含まれ、Bold などのメニュー項目がそれに接続されました。ただし、最新のストーリーボードには、事前設定された NSFontManager インスタンスはありません。

それでは、次の手順に従って手動で FontManager に接続できます。

  1. アプリケーション シーンで通常のオブジェクト インスタンス (青い立方体) を作成します。
  2. Object インスタンスのクラスを NSFontManager に変更します。 ここに画像の説明を入力
  3. メニュー項目をaddFontTrait(_:)fontManager のアクションに接続します。同様に「大きいもの」と「小さいもの」を につなげmodifyFont(_:)ます。 ここに画像の説明を入力

menuItems のタグも設定する必要がありますが、実際には既に設定されています。menuItem のタグが の場合にのみ、対応するタグも手動で設定し0ます。

于 2016-10-19T20:34:28.017 に答える