2

私の問題を説明するために、非常に単純なダミー プロジェクトを作成しました (10.12.1 で Xcode 8.1 を使用)。2 つのタブを持つ NSTabViewController を含むストーリーボードがあり、そのうちの 1 つは NSSplitViewController です。すべてが完全に機能しているように見えますが、実行時に次の警告が表示されます。

"TabSplitViewDummy[3615:89221] [レイアウト] <_NSSplitViewItemViewWrapper: 0x6000001a0d20> の不足している制約が検出されました。サイズと原点を完全に定義するのに十分な制約がないため、配置できません。不足している制約を追加するか、translatesAutoresizingMaskIntoConstraints=YES と制約を設定しますこのビューが macOS 10.12 以降で手動でレイアウトされている場合、オーバーライドから [スーパー レイアウト] を呼び出さないことを選択できます。DETECTED_MISSING_CONSTRAINTS にブレークポイントを設定してデバッグします。このエラーは一度だけログに記録されます。"

translatesAutoresizingMaskIntoConstraints=YES をすべてのビューに設定し、制約を設定しようとしましたが、何も機能しませんでした。これまでのところ、私は3つのことしか知りませんでした:

  1. 起動時に分割ビューが非表示になるようにタブの順序を変更しても、警告メッセージは表示されません
  2. タブ ビューを削除し、ウィンドウの分割ビュー コンテンツを作成すると、警告メッセージは表示されません。
  3. DETECTED_MISSING_CONSTRAINTS にシンボリック ブレーク ポイントを設定すると、6 回ヒットするため、制約が 6 つ不足していると推測されます。

私はすでにこれで何日も失っています。ここで何が欠けていますか?

助けてくれてありがとう!!!

GitHub ダミー プロジェクト

4

1 に答える 1

1

ほとんどそれを失った後、私は最終的に解決策を見つけました。他の誰かが同じ問題を抱えている場合に備えて、ここで私のために働いたことがあります: ストーリーボードに移動し、NSTabViewController の「ビュー」アウトレットを「シャドウ タブ ビューなし」に接続します。それでおしまい。新しい NSTabViewController をセットアップするときに、Xcode がそれを行うことを期待しますが、そうではありません。理由は完全にはわかりませんが、どういうわけか、これは NSSplitView の Autolayout を台無しにします。これについて詳しく説明できる場合は、コメントで説明してください。

于 2016-11-01T14:01:53.747 に答える