問題タブ [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.
cocoa - Mac OS X: マスター/ディテール インターフェイスと Cocoa バインディング
マスター/ディテール インターフェイスがあります。「マスター部分」では人のリストを表示し、「詳細部分」では選択した人の詳細を表示します。これには、その人が持っているもののリストが含まれます。
人や物は Core Data で管理されたデータ モデルに配置されます。
「マスター部分」は NSWindowController で管理されており、そこでは NSArrayController が Cocoa Bindings を介してピープル エンティティに接続されています。
「詳細部分」は、別の NSViewController で管理されます。
この detail-NSViewController から Cocoa Bindings を使用して、マスター部分で選択した人にアクセスできますか? Interface Builderからそれを行うことは可能ですか?
cocoa - ビューの子コントロールを作成する方法は、NSViewController で Tab と Shift+Tab にフォーカスを移します
1 つの既存のアプリケーションをアップグレードする必要があり、その既存の UI を個別の NIB に分割する必要があります。分割されたすべての UI に対して個別の NIB と NSViewController を作成することから始める予定です。問題は、NSViewController がキーボード TAB および SHFIT+TAB イベントに応答しなかったことです。ユーザーが TAB または SHIFT+TAB をクリックしたときに、NSViewController が動的にロードされた NSViewController ビューの適切な子コントロールにフォーカスを設定するようにしたいだけです。
ありがとう、
EDITED:以下は私の要件です。
動的にロードして、MainWindow プレースホルダー NSBox で NSPopupButton を使用して切り替える必要がある 3 つのサブビューがあります。
確認のために、新しいココア アプリを作成し、1 つの NSPopupButton と NSBox を Window に追加し、NSPopupButton と NSBox のアウトレットに参加しました。
次に、2 つまたは 3 つの NSTextField の子コントロールを含む別のカスタム ビューを含む 3 つの異なる NIB を持つ 3 つの新しい NSViewController を作成しました。
メインアプリのデリゲート関数では、3 つの NSViewController をすべて配列に追加し、後で replaceSubview を使用してビューを交換して、プレースホルダー NSBox のビューを置き換えます。
3 つの NSViewController のすべてに次のコードを追加しましたが、TAB または SHIFT+Tab キーを押してもまだ子コントロールにフォーカスできません。
objective-c - NSWindowController と NSViewController
おそらく非常に単純な質問ですが、私はそれを理解することができません。
ある種のウィザードを作成したいと思います: AnNSWindow
は別のシートとして表示され、NSWindow
3 つの異なる を次々に表示する必要がありNSView
ます。
NSWindowController
カスタムと 3 つの sを作成する必要があると思いますNSViewController
が、コントローラーのセットアップ方法とビューの交換方法がわかりません。
nstableview - NSViewControllerが再ロードされたときに、ファイルから新しいデータを使用してNSTableViewを再描画しますか?
複数のNSViewControllerを切り替えるMacOSXドキュメントベースのアプリがあり、各ビューは、以前のNSViewControllerのNSTableViewでのユーザー選択に基づいてNSTableViewsのplistファイルからのデータを表示します。私が抱えている問題は、NSViewControllerがロードされるたびに、ファイルから正しいデータを読み取ってNSTableViewに表示するために、どの関数を呼び出すことができるかを理解できないことです。UIViewControllersには、viewDidLoadの関数ファミリーviewWillAppearを使用しましたが、NSViewControllerに対応する関数を見つけることができませんでした。
現在、私はawakeFromNibを使用しています。これは正常に機能しますが、NSViewControllerが初めてロードされるときのみです。loadViewを試しましたが、NSViewが折りたたまれます。loadViewを使用するには、さらにセットアップを行う必要があると思います。
私は、Hillegassの本Cocoa Programming for MAC OSXのViewSwappingコードを使用しています。これは、ViewControllerを次のコードに切り替えます。
NSViewコントローラーをレスポンダーチェーンに配置します。
NSViewControllersを交換するたびにビューを設定するために呼び出すことができる関数はありますか?NSViewControllerがfirstResponderになったことを確認できますか?
objective-c - awakeFromNib の完了時にサブビューが消える
NSBox サブビュー (シャドウに対して CA が有効になっている) を持つビューがあり、awakeFromNib 中に NSView サブクラスをボックスに動的に追加しようとしています。
これらの NSView の数はユーザーによって異なるため、ボックス内に適切に配置するために作成する行と列の数を決定するコードをいくつか作成しました。(私はすでに NSMatrix を検討しましたが、意図したとおりにレイアウトしません)
問題は、awakeFromNib メソッドが終了した後、サブビューが突然消えることです。私はそれを追跡するためにたくさんの NSLog ステートメントを入れましたが、サブビューが消える前に明らかに NSBox に追加されていることがわかりました。アプリを実行すると、サブビューがほんの少しだけ表示され、アニメーションが終了すると消えます。
これが私のawakeFromNibメソッドです:
これに関するヘルプは大歓迎です!
スティーブ
objective-c - 複数のView Controllerで同じNIBを使用する
基本的に、何度も作成する予定のビューのテンプレートとして、nib ファイルとビュー コントローラーを使用したいと考えています。このペン先には、いくつかのラベルとカスタム ビューがあります。アイデアは、オブジェクトの配列を反復処理し、それぞれに対してこのコントローラーのインスタンスを作成し、配列のオブジェクトのプロパティにプロパティを設定するというものです。
現時点では、setStringValue: を呼び出したときにラベルが更新されないことを除いて、これはすべてうまく機能します。
ビュー コントローラーのコード内でメソッドを使用して変更を加えていますが、うまくいきません。カスタム ビューが完全に接続されているため、IBOutlet が適切に接続されていないと推測されます。
何か案は?
objective-c - nib を管理するための NSViewController または NSWindowController
グッド プラクティスとリソースの使用法 (メモリなど) に関しては、NSViewController または NSWindowController のいずれかが私がやろうとしていることを満たす場合、どちらを使用するのが望ましい方法ですか。別のニブから別のニブを開く。どちらかを使用して達成できます。唯一の違いは、以下のインスタンス化構文と呼び出し構文です (initWithNibName 対 initWithWindowNibName および [nib ビュー] 対 [nib showWindow:sender])。
コメントはありますか?
objective-c - keyup キーダウン メソッド NSViewController
NSViewController のインスタンスを作成し、サブビューとしてメイン ウィンドウのコンテンツ ビューに追加しました。acceptsFirstResponder
キーボード イベントをキャプチャできるようにしたいのですが、実装方法がわかりません。いくつかの調査の結果、NSViewControllerにkeyUp:event:
およびメソッドを実装する必要がkeyDown:event:
あることがわかりましたが、その後もまだ機能していません。 .
cocoa - Interface Builder での NSWindowController オブジェクトのリンク
別のウィンドウでボタンをクリックして開きたい NSWindow xib ファイルを作成しました。
ここで、NSWindow の動作を制御するために、xib の Library からオブジェクトをドラッグし、XCode で定義した NSWindowController (つまり ListingWindowController) のサブクラスに変更しました。
同様に、NSWindow 内の NSView を管理するために、NSViewController のサブクラス (つまり、ListingViewController) も作成しました。これを行うために、xib の Library から NSViewController をドラッグし、そのクラスを ListingViewController に変更しました。
IBでウィンドウコントローラーのウィンドウとlistingVCを接続しました。
起動 (最初の) ウィンドウでボタンをクリックしてこのウィンドウを呼び出すには、次のように initWithWindowNibName を使用してウィンドウ コントローラーを作成します。
問題は、今後のウィンドウ/ビューのビュー コントローラーに対して IB ですべてのバインドが行われているにもかかわらず、新しいウィンドウが読み込まれた後でも、ウィンドウとリスティング VC が (null)、(null) になることです (コードの下)。
接続が機能しない理由を教えてください。私はかなり長い間、この問題に頭を悩ませています。
PS: 私は iOS プログラミングのバックグラウンドを持っています。したがって、Mac のウィンドウ/ビュー コントローラーは iOS の UIViewController と同様に動作すると想定しています。
ティア..
xcode - NSViewController間の切り替え
Macアプリケーションを開発しています。アプリケーションの左側には共通のソースビューがあり、右側にはウィンドウ全体の主要部分である詳細ビューがあります。
これはマスターと詳細の関係に似ていますが、ソースビューの各要素には別の詳細ビューが必要です。実際、ソースビューの要素ごとに特定のNSViewControllerを設計しました。
これらのNSViewControllerを切り替える場合、つまり、ソースビューで別の要素を選択すると、現在のビューが削除され、新しく選択されたNSViewControllerのビューが追加されます。NSViewControllerを変更するたびに、その状態は失われます。ユーザーがそのNSViewControllerに戻ったら、最初からやり直す必要があります。
今の私の質問は、NSViewControllerの状態を保存して、状態を失うことなくこれらを切り替えて、離れた場所から続行できるようにするにはどうすればよいですか?