問題タブ [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 投票する
2 に答える
492 参照

objective-c - 「アプリケーションには、アプリケーションの起動の最後にルート ビュー コントローラーが必要です」というエラーがデバイスでのみ表示される

同様の質問を持つ他の投稿があることを知っており、それらをチェックしましたが、どれも私の問題に関するものではないようですので、ご容赦ください.

私は iPad でのみ実行するアプリケーションを開発しているため、普遍的なものはありません。MainWindow nib ファイルは iPad 用に設計されています。

問題は、Xcode (5.0 と 5.1 の両方) から iPad シミュレーターで実行する限り、すべて正常に動作することです。しかし、実際の iPad (iOs 5.0 を搭載) で実行しようとするとすぐに、空白の画面が表示され、コンソールに「アプリケーションには、アプリケーションの起動の最後にルート ビュー コントローラーが必要です」というメッセージが表示されます。

関連するはずのコードを次に示します。

したがって、私を混乱させているのは次のとおりです。シミュレーターで上記のステップバイステップを実行すると、デバッグ変数 (ルートビューコントローラー) が初期化され、実際のデバイスで実行するとすべてがゼロになります。

わかりました、それは私からです。これについて何か助けていただければ幸いです。

みんなありがとう。

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

macos - NSViewController のpresentedObject のバインディング

representedObjectのプロパティをNSViewControllerNSArrayControllerプロパティselection( である)にバインドすることは可能NSManagedObjectですか?

これにより、何らかの理由で常に選択なしのプレースホルダーが表示されます!

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

objective-c - ウィンドウのサイズが変更されたときに、NSWindowのNSViewのサイズが変更されないのはなぜですか?

ドラッグ時にNSWindowでビューのサイズが変更されない理由を理解しようと、髪の毛を抜いています。

さて、これが私の構造です:

  • サブクラス化されたNSWindowControllerのビュー(ウィンドウに対してチェックされた自動レイアウトを使用します。ビューに対してチェックされた自動サイズ変更。ウィンドウのビューはIB内の何にも接続されていませんか?)
    • さまざまなボタン
    • カスタムビュー (サブビューの自動サイズ変更がチェックされています)
      • サブクラス化されたNSViewControllerのビュー(サブビューの自動サイズ変更とマスクの変換がチェックされています)
        • さまざまなサブビュー(サブビューの自動サイズ変更がチェックされています)
      • サブクラス化されたNSViewControllerのビュー(サブビューの自動サイズ変更とマスクの変換がチェックされています)
        • さまざまなサブビュー(サブビューの自動サイズ変更がチェックされています)

これらの各ビューをNSWindowControllerのカスタムビューに追加しています。これは私のファイルで唯一の関連する方法です:

サイズを変更するsetFrameは、ビューを変更した場合は機能しますが、ドラッグしてウィンドウのサイズを変更した場合は機能しません。私の知る限り、ビューを変更するとsetFrameが機能するため、実際に重要な(ただし機能していない)のは、NSWindowController内のカスタムビューだけです。

また、これは私がこのウィンドウを前面に出す方法です:

はい、私はすでにinitwithframeで試しました:

私は何が欠けていますか?

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

cocoa - サブビューを NSView に追加して、チェスのようなグリッドを作成する

基礎となるアルゴリズムの実行中に異なる色を想定する 2 セットの正方形 (チェスのようなグリッド) で構成される Cocoa UI を作成しようとしています。アルゴリズムの実行が終了すると、UI はクリック、パン、その他のジェスチャを処理できる必要があります。

これまでの階層は次のとおりです (詳細については、添付のコードを確認してください)。

1) ウィンドウコントローラのウィンドウであるメインウィンドウ

2) mainView と sideView の 2 つのカスタム ビューを含む分割ビュー (それぞれが正方形のセットを保持します)

3) 2 つのビュー コントローラー (mainViewController と sideViewController)

mainView と sideView のサブビューとして正方形を読み込めるようにしたいと思います。

私は別のカスタム ビューを考えました。たとえば、SquareView と別の nib ファイルを使用します。私の質問は次のとおりです。

a) チェスのようなグリッドを形成するサブビューとして mainView および sideView に追加される正方形を作成するために使用できるように、この SquareView を作成するにはどうすればよいですか?

b) サブビューを mainView と sideView に追加して 2 つのグリッドを構築するにはどうすればよいですか? 簡単にするために、前述の各ビューに 4 つの重複しない正方形があると仮定しましょう。

ありがとうございました!


MainView.m

SideView.m

MainWindowController.h

MainWindowController.m

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

cocoa - ウィンドウのcontentViewをサブビューに「ハグ」させるにはどうすればよいですか

この質問のように、NSWindowのcontentViewであるNSViewがあり、垂直に積み重ねられた複数のサブビューが含まれています。それらのいくつかは固定サイズであり、それらのいくつかは開示ボタンで拡大または折りたたむことができます。

サブビューの1つを展開または折りたたむと、他のすべてが調整され、それに応じてスーパービューとウィンドウのサイズが変更される、一種の「アコーディオン」効果を実装したいと思います。

自動レイアウトで適切な制約のセットを設定することでこれを達成できるはずであるように思えますが、今では初期レイアウトをうまく実行しています。しかし、スーパービューが自動的にサイズを変更してサブビューをハグするように制約を設定する方法がわかりません。

上にリンクされた質問のOPは答えを得ることができず、私が独立して実装し始めたような彼自身の解決策を提供しましたが、トリックを知っている自動レイアウトの達人がいる場合に備えて、もう一度それを捨てると思いました。サブビューのサイズを手動で計算したり、スーパービューのサイズを手動でリセットしたりせずに、自動レイアウトを利用して、スーパービューにサブビューをハグさせる方法があるはずです。

誰もが方法を知っていますか?

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

cocoa - XIBからのビューベースのNSTableViewのビュー?

NSTableCellViewビューベースののために別のXIBファイルを持つことは可能NSTableViewですか?多分?の助けを借りてNSViewController

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

cocoa - initWithNibNameが2回呼び出されたか、間違ったxibがロードされました

私はCocoaアプリケーションをプログラミングしていて、そのアプリケーションを一種のウィザードとして機能させたいと思っています。そのため、メインウィンドウには、ユーザーと対話し、ユーザーがウィザードのステージをステップスルーするときにサインインからデバイスアクティベーション画面に変更するカスタムビューがあります。現在、WizardViewControllerのawakeFromNibメソッドをオーバーライドしています。

現状では、SignInIDViewControllerのinitWithNibNameは2回呼び出されます。1回は私が明示的に呼び出し、もう1回はビューがロードされたとき(おそらくloadViewを介して)です。ただし、単にinitを呼び出すと、initWithNib名は1回だけ呼び出されますが、間違ったxibファイルが(DeviceActivationViewControllerクラスの)ロードされます。signInViewControllerを2回初期化するべきではないため、何が間違っているのか理解できないようですが、表示するにはIBに適切なxibファイルが必要です。

現在このクラスにある、ユーザーインターフェイスIBActionではない他の唯一のメソッドは、生成されたinitWithNibNameメソッドと追加されたNSLogステートメントです。

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

cocoa - Nib から NSViewController をロードする

initWithNibName:bundle: を使用して UIKit で通常行うように、Nib ファイルからビューとすべてのサブビューを含む NSViewController をロードできますか? AppKit では、そのメッセージで NSWindowController を読み込むことができますが、NSViewController を読み込もうとすると、ビューは nil ではありませんが、表示されません。これを行う既知の方法はありますか?

編集: addSubview: を使用してプログラムでビューを追加すると機能しますが、メイン nib のカスタム ビューへのアウトレットを使用してから置き換えると機能しません。

0 投票する
3 に答える
764 参照

objective-c - View Controller がアクション メソッドに応答しない

ビューにボタンがあるビューコントローラーを持つ単純なテストアプリ(OSX)があります。ボタンのアクション メソッドはビュー コントローラーのクラスにあり、その IBAction は (ファイルの所有者を介して) IB に接続されます。ボタンがクリックされると、EXC_BAD_Access エラーが発生します (ただし、代わりに -[NSRunLoop buttonClick:] が発生する場合があります)。ここで、レスポンダーチェーンにない NSViewControllers に関係する SO に関する多くの投稿を読みましたが、IB でアクションメソッドを具体的にフックすることも機能するはずです。私が持っている唯一のコードはこれです:

アプリのデリゲートで:

そして、TestController クラスでは、次のようになります。

2 つの質問があります。なぜこれが起こっているのですか? また、ボタン メソッドの IBActions を配置する正しい mvc の場所はどこですか (コントローラー クラスがこれらを処理するべきではありません)。

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

objective-c - ボタンをクリックすると、その後の起動で異なるエラーが発生する

同じアプリの異なる実行で同じアクションが異なるエラーをスローする、この応答を見たことがありません。

ボタンをクリックするとエラーをスローする NSViewController サブクラスにボタン (送信者をログに記録するだけ) の IBAction があります (これは OSX アプリです)。私はこれらを取得しています(これまでのところ):

そして、恐ろしいEXC_BAD_ACCESS。

このテスト アプリの唯一のコードは、View Controller をインスタンス化するためのアプリ デリゲートの次のコードです。

そして、View Controller サブクラスのこの IBAction:

ビュー コントローラーに実装されている IBAction は、IB で (ファイルの所有者を介して) そのビューにあるボタンに接続されます。

このような単純なプログラムで、どうしてこれほど多くの異なるエラー メッセージが表示されるのか理解できません。これは、View Controller がレスポンダー チェーンに含まれていないことに問題があるのでしょうか? もしそうなら、なぜそれはエラーをスローする必要がありますか?

コントローラーのビューでコントローラーを次のレスポンダーとして設定しようとしましたが ([controller.view setNextResponder:controller]; を使用)、起動時に EXC_BAD_ACCESS エラーが発生するだけです。