問題タブ [nsviewcontroller]

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 に答える
897 参照

objective-c - 複数の NSView を 1 つの Xib ファイルに

数日間、複数の NSView を 1 つの .xib ファイルにまとめる方法を見つけようとしてきました。NSViewControllerメインコントローラーとして使用しているサブクラスを追加しましたNSView。2 つのカスタムビュー用のアウトレットを持つ 2 つの があります。これを 2 つの NSViewController (PumpController と TransactionController) にサブクラス化して、両方のカスタム ビューのコンテンツを制御しました。

MainController (ファイルの所有者) のビューをカスタム ビューの 1 つにバインドすると、半分の結果が得られます。次に、[self.view addSubview:SomeStuff] を NSViewController の 1 つに呼び出すと、正しい結果が得られますが、ファイルの所有者を接続したビューでのみ得られます。両方のビューで結果を取得する必要がありますが、ビュー アウトレットで複数のファイルの所有者を持つことはできません。ここに写真があります

NIB 内の複数のビュー。 リンク: http://i.stack.imgur.com/gwSAq.jpg

また、上記のアウトレットを正しいビューにバインドしても、PumpController から "outlet".bounds.size.width の結果を取得できません。self.view.bounds.size.width は、PumpController ビューの結果ではなく、ファイルの所有者ビューの結果を提供します。

これを機能させるために、各カスタムビューを各 NSViewController にセットアップする方法を説明する助けが必要です。

私の英語でごめんなさい:s

前もって感謝します

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

objective-c - NSViewController.view (サブビュー) setTag

ボタンを押すたびに、mainController が [self.view addSubview: createCustomView.view] を呼び出しています。ここではすべて正常に動作します。問題は、後で取得するために、作成した各サブビューにタグを付ける必要があることです。私はすでにこれを試しました:

そして、私が実際にやりたいことは次のとおりです。

しかし、setTag メソッドは存在しません。私の質問は次のとおりです。私の場合、いくつかの問題を引き起こす識別子文字列を使用する以外に、これを行う方法はありますか?

前もって感謝します

コントローラーの .h ファイルは次のとおりです。

コントローラーの .m ファイルは次のとおりです。

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

cocoa - NSViewControllerを使用して、定義された列とデータで再利用可能なNSTableViewを提供できますか?

私はXcodeとCocoaの開発にかなり慣れていないので、間違った用語を使用している場合は失礼します。

NSArrayControllerにバインドされたNSTableViewを持つウィンドウがあります。NSTableViewにはいくつかの事前定義された列があり、ウィンドウがロードされるとNSArrayControllerにデータが入力されます。

これはすべて正常に機能しますが、他の多くのウィンドウで機能を再利用する必要があります。よく読んだ後、NSViewControllerが必要だと思います。これは、複数の.xibのさまざまなウィンドウで再利用できるオブジェクトを提供するためです。

したがって、私が行ったことは、Xcodeに新しいNSViewControllerサブクラスを作成し、そのコントローラーの新しいxibも作成したことです。

xibには、NSTableViewを配置したカスタムビューが含まれています。

ファイル所有者クラスはKeyViewControllerに設定され、ビューアウトレットはファイル所有者に設定されます。

次に、ViewControllerオブジェクトを元のウィンドウに配置し、ウィンドウ内の新しいカスタムビューにビューを接続しました。

次に、そのプロパティでViewControllerのペン先名を設定します。

新しいビューが表示されることはなく、ビューコントローラのinitWithNibNameが呼び出されることもありません。

私は何か重要なものを見逃しているのか、それともプロットを完全に見逃しているのか。インターフェイスビルダーだけでこれを実行できる必要がありますか、それともコードでビューを割り当てて初期化する必要がありますか?

コードでそれを行う必要がある場合、IBのViewControllerオブジェクトとそのNib Nameプロパティの目的は何ですか?

ありがとう..

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

objective-c - Objective-C での ViewController の操作

これは私の AppDelegate.m ファイルです:

そして、これは私の LoginViewController.m です:

ログインボタンが押されたときにメインビューに戻すにはどうすればよいですか? これは、自動作成されたファイル MainMenu.xib 内にあります。ネット上のチュートリアルのほとんどは iOS 用であり、ビューの処理に関しては少し異なります。ビューの遷移をアニメーション化するにはどうすればよいですか?

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

objective-c - カスタムクラスの場合、NSViewControllerのビューを取得しますか?

次のコードを使用して、ビューをコントローラーから取り出します。

これはかなりうまく機能しますが、警告が表示されIncompatible pointer types initializing CollectionItemView __strong with an expression of type NSViewます。なぜこれを取得するのか理解していますが、無視しても大丈夫ですか、それともビュープロパティを上書きする必要がありますか?

チャック

0 投票する
5 に答える
4057 参照

macos - NSViewController viewWillAppear ココア

ココア タッチでプッシュ/ポップ ビューの UINavigationController のようなココア MAC アプリ開発でビューを交換したいです。プッシュ ビューとポップ ビューのアプリの要件です。どうにかしてこれを達成することができましたが、今はプロジェクトの途中で、ココアで viewWillAppear のようなものが必要です。

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

cocoa - オンザフライでウィンドウを分割する

こんばんは。

私は2つのコントローラーを持っています。それらを NSViewController1 および NSViewController2 と呼びます。コントローラーは 1 つの NSWindow に配置され、いくつかのネットワーク ロジックを持ちます。プログラムの実行中にメモリからそれらを削除するのはあまり良くありません。

ボタンを作成したいと思います。ユーザーがボタンをクリックすると、1 つのウィンドウが 2 つのウィンドウに分離する必要があります。新しいウィンドウの最初のウィンドウには NSViewController1 が含まれ、2 番目のウィンドウには NSViewController2 が含まれている必要があります。切り替えがアニメーション化されている場合は、はるかに優れています。

ここに画像の説明を入力

記述された動作を実装する最良の方法は何ですか? 誰かがこのタスクでオープンソース プロジェクトを見たのではないでしょうか?

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

cocoa - Cocoa : nib で NSViewController をロードする

このサイトで見つけた多くの可能性を試し、アップルの開発者ページからいくつかの説明を読みましたが、NSViewController with/form NIB のロードに関する問題を解決できなかったようです。

Xcode プロジェクトのファイルは次のようになります。

  • SecondViewController.h
  • SecondViewController.m
  • SecondViewController.xib
  • AppDelegate.h
  • AppDelegate.m
  • MainMenu.xib

主な問題は、SecondViewController.xib の初期 nib を使用して SecondViewController をプログラムで作成する方法です。

  • MainMenu.xib の FileOwner のカスタム クラスは NSApplication です。
  • SecondViewController.xib の FileOwner のカスタム クラスは SecondViewController です。
  • MainMenu.xb にはいくつかのパネルとウィンドウがあります (ウィンドウと設定パネルについて)
  • このアプリケーションにはメイン ウィンドウがありません (ステータス バーの通知アイコンを使用)

SecondViewController.h

SecondViewController.m

AppDelegate.h

AppDelegate.m

initWithNibName または単に init を使用している場合でも、すべての IBOutlet プロパティがデバッグ時に nil のように見えます。

「NSBundle loadNibNamed」やloadViewを使用するなどの他の解決策を試しましたが、うまくいきませんでした(警告メッセージ:「NSObjectはloadViewに応答しません」)。

secondViewController の主な目的は、グラフィックや Web 要素を含む通知メッセージを表示することです。

誰かが私に最高の提案をしてくれることを願っています。ありがとう。

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

nsviewcontroller - NSPopoverが複数回開くのを停止します

私はNSButtonを持っており、クリックするとNSPopoverが開きます。唯一の問題は、ボタンをもう一度クリックすると、NSPopoverがもう一方の上に再び開き、ポップオーバーが次を使用して開くことです。

ユーザーがビューの外側をクリックした場合と同じように、ポップオーバーを開くのではなく、ポップオーバーを閉じるにはどうすればよいですか?前もって感謝します。

(左= 1回クリック、右=複数回クリック)

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

objective-c - ポリモーフィズムと Cocoa NSViews + バインディング

現在、すべてのステップ モデル クラスが基本の WizardStep クラスのサブクラスである、ウィザードのような機能をアプリ用に開発しています。今は 3 つしかありません (ただし、常に 12 未満になります)。

実際のウィザード NSView をバックエンドするための WizardControllerがあり、UI でこのポリモーフィックな WizardStep クラスを管理する方法の問題に直面しています。ステップのサブクラスごとに Cocoa バインディングを幅広く使用することに注意してください。

次の 3 つの解決策が思い浮かびました。

1) WizardStep のタイプごとに個別の NSViewを作成し、同数の NSObjectController を作成して、それらの間で特定のサブクラス プロパティをバインドします。ユーザーがステップに移動すると、NSObjectController のコンテンツが入力され、ウィザード ビューに (もちろんサブビューとして) ビューが表示されます。

2) WizardStep のタイプごとに個別の NSView を作成し、単一の NSObjectController を作成して、すべてのサブクラス プロパティをそれにバインドします (コントローラ コンテンツのタイプによっては、それらの一部が使用できなくなります)。ユーザーがステップに移動すると、NSObjectController のコンテンツが入力され、ウィザード ビューに (もちろんサブビューとして) ビューが表示されます。

3) WizardStep の各タイプごとにタブを持つ NSTabView を作成し、単一の NSObjectController を作成 (またはウィザードの ViewController を使用) し、すべてのサブクラス プロパティをそれにバインドします (解決策 2 のように、それらのいくつかは使用できなくなります)。ユーザーがステップに移動すると、NSObjectController のコンテンツを入力し、特定のステップ タイプに応じてタブ ビューの selectedIndex プロパティを設定します。

解決策 1) が最も正確で洗練されているように感じますが、やり過ぎになる可能性があるのではないかと思います(多くの NSObjectController、多くの NSView)。解決策 2) と 3) は、私にはばかげているように感じます (バインディングが利用できないため)。

進め方について何かアドバイスはありますか?

みんなありがとう、ピーター