問題タブ [nssplitviewcontroller]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
1 に答える
156 参照

xcode - NSSplitView でデリゲートを変更できません

メインウィンドウ(対応するMainWindowControllerクラスを含む)とメインビュー(NSSplitViewController対応するクラスを含む)を含むストーリーボードがありますMainViewControllerNSSplitView特定の機能について、ビューに含まれるデリゲートをMainWindowControllerクラスに設定しようとしています。

IB リンケージがない場合、デリゲートはアプリケーションの起動時NSSplitViewにすでに設定されています。MainViewControllerへの参照を取得できますがMainWindowController、デリゲートをウィンドウ コントローラー ( を実装する) に設定しようとするとNSSplitViewDelegate、次のようになります。

これは、デリゲートを に設定しようとした場合にも発生しnilます。

デリゲートの設定に制限があるかどうか、IB を使用してビュー内のアイテムのデリゲートを別のコントローラーに設定する方法があるかどうか、なぜそうなる可能性があるのか​​ 誰かが知っていますか?

ありがとう。

0 投票する
2 に答える
537 参照

macos - NSSplitViewController により、含まれているビューがウィンドウの隅に描画される

Cocoa を使用して小さな Finder クローンを作成しようとしています。ソース リスト テーブル ビュー (サイドバーとして機能するため) と標準テーブル ビューをNSSplitViewによって制御される内に配置していNSSplitViewControllerます。残念ながら、これを実行すると、標準のテーブル ビューの白い背景がウィンドウの右下隅に描画され、角が丸くなくなります。 右下隅を重ねて描画

を使用しないことで問題を回避できNSSplitViewControllerます。標準の nib ファイルまたはストーリーボードの両方で、目的の結果を得ることができます。

NSSplitViewController がなくても、正しく描画されます

でも…どうしても使いたいNSSplitViewController。これを防ぐ方法はありますか?

スクリーンショット用のプロジェクトを含む Xcode ワークスペースを次に示します

0 投票する
1 に答える
272 参照

xcode - NSSplitViewController をウィンドウに接続する

NSSplitViewController を Xcode インターフェイス ビルダーのストーリーボードのウィンドウに接続したい:

ここに画像の説明を入力

どうやってやるの?

0 投票する
1 に答える
416 参照

swift - NSToolbarFlexibleSpaceItem は、Swift の NSSplitViewItem に対する制約です

ここに画像の説明を入力

ほとんどすべての macOS 公式アプリには、このツールバーの機能があり、NSToolbarItem柔軟なスペースが表示に制約されていNSSplitViewItemます。NSToolbar には 3 つの異なるセクションがあるのではないかと最初に考えました。しかし、それは 1 つのツールバーにすぎません。Notes アプリを開いて、ツールバーをカスタマイズできます。

  • 最初のフレキシブル スペースが検出され、最初の分割ビュー アイテムと共に移動されます。
  • 2 番目のフレキシブル スペースが検出され、2 番目の分割アイテムと共に移動されます。
  • 残りは通常の柔軟なスペースになります。
  • フレキシブル スペースが 2 つしかない場合、2 つ目は通常のフレキシブル スペースとして機能します。同じことが1つまたは柔軟なスペースにも当てはまります。

これが、Apple がフレキシブル スペース アイテムを構成する方法だと思います。

このJWToolbarAdaptiveSpaceItemを見つけましたが、取り外し可能であり、ノート アプリのようにフレキシブル スペース アイテムに置き換えることはできません。

これについて尋ねられた別のstackoverflowの質問(今は見つけられませんでした)がありますが、答えはNSToolbarではない偽のビューとボタンを追加することです。

したがって、これを達成する方法を知っている人はいますか?

(私の英語でごめんなさい)

0 投票する
1 に答える
522 参照

swift - NSSplitViewItem の折りたたみは、splitViewDidResizeSubviews を呼び出さない

関数を継承しNSSplitViewControllerてオーバーライドするクラスがありますsplitViewDidResizeSubviews

NSSplitViewItem内部で折りたたみを呼び出すとNSSplitViewController、目にNSSplitViewItem見えるサイズ変更が表示されますが、splitViewDidResizeSubviews関数は呼び出されません。

ウィンドウのサイズを変更すると、splitViewDidResizeSubviews関数が呼び出されるので、正しく実装されていることがわかります。

折りたたみ時に関数が呼び出されることを期待できますsplitViewDidResizeSubviewsか?もしそうなら、何が間違っているのでしょうか?

0 投票する
1 に答える
1151 参照

autolayout - NSTabView 内の NSSplitView のレイアウトの問題 - 制約の欠落

私の問題を説明するために、非常に単純なダミー プロジェクトを作成しました (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 ダミー プロジェクト

0 投票する
0 に答える
96 参照

cocoa - 分割ビュー コントローラのメモリ管理

私はosxアプリケーションで単純な分割ビューコントローラーを使用しています...分割項目0はメニューに使用され、2番目の項目はコンテンツに使用されます(slackアプリケーションのように)。

メモリリークが発生するため、最適化が必要です...メニュー項目がクリックされたときに行うことは次のとおりです。

0 投票する
2 に答える
2923 参照

macos - Swift を使用して NSSplitViewController ペインの幅を設定する

Xcode 8.2.1、スウィフト 3.0.2、macOS 10.12

3 つのペインを持つNSSplitViewControllerがあります ( に注意してくださいNS。これはMacアプリ用です)。

一番左のペインの幅を常に固定し、サイズを変更できないように設定しようとしています。私は次のことを試しました:

  • 何らかの理由で、ペインの子ビューのストーリーボード エディターで自動レイアウト制約を使用できません。
  • 設定constrainMaxCoordinateしてもconstrainMinCoordinate動かなかった。

最近、他の誰かがこれを機能させましたか?このトピックに関する記事はたくさんありますが、それらのツールセットは数年前のものであり、それらの提案はどれも私にとって役に立ちませんでした. ありがとう!

ここに画像の説明を入力

0 投票する
2 に答える
1728 参照

cocoa - NSToolbarItems を NSSplitView 列に揃えます

Finder と Notes には、私が再現しようとしている独特の動作があります。NSToolbar の「柔軟なスペース」は、分割ビューのサイズを考慮しているようです。たとえば、ボタンの最初のグループは、サイドバーの左側と右側に配置されます。アイコンの 2 番目のグループは、最初の列の右側に配置されます。サイドバーを広げると、ツールバーの項目も一緒に移動します。

これを再現することは可能ですか?

ここに画像の説明を入力


解決

@KenThomases が提供するソリューションを使用して、次のように実装しました。