問題タブ [nspopover]
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 - 各ビューを含むビューベースの NSTableView には、テキストに基づいてサイズ変更する必要がある 3 つのラベルが含まれています
以下に示すように、ポップオーバーでビューベースのテーブルビューを作成する必要があります。
- テーブルビューはポップオーバーに配置する必要があります(ポップオーバーの高さはテーブルビューと同じにする必要があります)。
- 各行にはビューが含まれている必要があります。
- 各行ビューには 3 つのラベルが含まれます。
- ラベルは、テキストの高さに基づいて自動サイズ変更可能にする必要があります。
- 3 つのラベルの高さに基づいて、セル行の高さを変更する必要があります。
- すべてのセル行に基づいて、テーブルビューの高さを変更する必要があります。
- テーブルビューの高さに基づいて、ポップオーバーのサイズを変更する必要があります。
私はこれを静的形式で行いましたが、より動的な形式で行う必要があります (将来、同じクラスとメソッドを使用してさらに行を追加できるはずです)。
私が直面している主な問題は、tableView:heigthOfRow:
この時点でラベルのテキストがわからないため、セルビューのサイズを計算できないことです。そのため、loadView 自体でテーブルビュー セルを作成し、配列に保存し、テーブルビュー デリゲート メソッドで配列からフェッチしました。しかし、これは間違ったやり方だと思います。
注: テーブルビューへのすべてのデータは、ビュー自体の読み込み中に提供されます。ラベルは編集できません。
macos - NSPopover のように動的にサイズ変更されるように RBLPopover を修正する方法についてアドバイスが必要です
RBLPopover は Github の Guys によって作成された Popover で、NSPopover を模倣することを目的としていますが、canBecomeKeyWindow などのいくつかの欠陥を修正しています。これは、現在 GitHub でホストしている Rebel Framework の一部です。このポップオーバーをステータスバー アプリケーションに使用することにしましたが、問題が発生しました。NSPopover は、表示されていて setContentSize を使用している場合、サイズを動的に変更してアニメーション化することができます。次に、アニメーションを新しく指定されたサイズに自動的にサイズ変更します。ただし、RBLPopover はそれを行っていません。RBLPopover のコードを 8 時間調べた後、これを修正できませんでした。1 つの理由は、ビューが内部で詳細にどのように機能するかについての私の部分の知識の遅れです。
RBLPopover のコードは次の場所にあります。
https://github.com/github/Rebel/blob/master/Rebel/RBLPopover.m
誰かがこれを修正する方法についてのヒントを教えてもらえますか? 私はコードを求めません。これを達成する方法についてのアドバイス/コンセプトだけです。親クラスに欠落しているメソッドはありますか? showRelativeToRect:ofView:preferredEdge: が変更する正しい方法だとは思いません。もっと基本的なものが欠けていると思いますが、わかりません。
objective-c - 別のviewControllerでNSPopoverを正しく設定する方法
非常に単純なテスト プログラムを作成しました。ボタンが1つ付いています。ボタンをクリックするNSPopover
と、ラベル付きの が表示されます。そのラベルは、独自のNSViewController
.
目標は、メイン画面でボタンをクリックすると、ポップオーバーに の xib ファイルが表示されることですviewcontroller
。また、xib ファイルのラベルには、テキストが「動作します」に設定されている必要があります。
まあ..それは動作しますが、ポップオーバーの 2 回目の読み込み後にのみ有効です。ボタンの最初のクリックでは、ラベルはまだ古いデフォルト値のままです。しかし、2回目以降は「動く」。 この問題を引き起こしている可能性があることを知っている人はいますか? わずか 5 行のコードですコードはこのリポジトリで見ることができます --> https://github.com/patchthecode/testtest
objective-c - NSOutlineView reloadData 私の NSPopOver を閉じる
2 つの列を持つ NSOutlineView (ビュー ベース) があります。2 番目の列には、1 つの NSPopOver に接続された NSButton があります。
ボタンをクリックすると、期待どおりに NSPopOver が表示されます => ポップオーバーが表示されます。
問題: NSOutlineView の reloadData を実行すると、 NSPopover が非表示になります!
それは正常な動作ですか?これを回避するには?
つまり、各 reloadData の後に popoverWillClose デリゲート メッセージが呼び出されます。
objective-c - NSComboBox - 選択時の背景の問題
私は iOS 開発者で、最近は MAC OSX 用のデスクトップ APP をプログラミングしています。私はまだ OSX のビューのコンポーネントについてあまり経験がないので、ばかげた、または簡単な質問かもしれませんが、この問題について少し調べてみましたが、まだ解決策が見つかりません。
問題は次のとおりです。
NSPopover で使用される Content ViewController のビューとして使用される NSView のカスタム特殊化があります。
「PopoverBackgroundView」と呼んでいるこのビュー内で、drawRect 内にこの赤い背景をペイントし、別のマイナー rect を計算して、この灰色のような色でペイントしました。コードは次のとおりです。
そのため、PopoverBackgroundView.m
プログラムで NSComboBox を作成しています。このコンボボックスには 1 から 10 の数字が入ります。割り当てると、すべて問題ないように見えます。
問題は、コンボボックス内のオプションを選択した後、背景がどういうわけか「消えて」透明になったことです。わかりませんが、次のようになります。
何かを選択した直後に表示される、NSComboBox の周りの赤いフレーム (ビューの背景色) に注目してください。
これは、コンボボックスを割り当てて初期化するコードです。
この「選択した背景」を「修正」するにはどうすればよいですか? 私が望むのは、選択された状態が通常の状態と同じであることです。つまり、選択後でも、コンボボックスは常に最初の画像のようになるはずです。
割り当てコードに問題はありませんか?何かのミッション?私が使用していない、または初期化していないプロパティだけだと本当に考えていますが、まだ見つけることができませんでした。
前もって感謝します、
macos - windowDidLoad で NSPopover を開く
ウィンドウが開いてユーザーに指示を与えるときに、Mac アプリケーションで NSPopover を表示しようとしていますが、ポップオーバーは表示されません。
ボタンを押してまったく同じ関数を呼び出すと、ポップオーバーが正常に表示されますが、windowDidLoad で呼び出すと表示されません。
私が提示しているコントロールには境界があることがわかるので、それは問題ではないと思います。また、ポップオーバーの動作が一時的なものではないことも確認したため、介入なしでは閉じないはずです。
私の関数では、いくつかの変数をカスタム初期化子に渡していますが、基本的にはこれだけです:
init メソッドは以下を呼び出すだけで、カスタム ビューとコントローラーが NIB に接続されます。
誰かがこれに出くわしましたか?
objective-c - NSPopover が使用するベース NSView の参照を取得する方法
質問は非常に簡単です。ユーザーが私の NSView をクリックしたときに、いくつかの情報を表示するために使用する NSPopover プロパティがあります。ポップオーバーを表示する方法は次のとおりです。
ofView
問題は、パラメーターで使用されるビューの参照をポップオーバーから取得する方法はありますか?
ユーザーは、この iVar で追跡しているこの NSView を何度もクリックできます。私は、新しく表示されたビューが以前のものと異なる (または異なる) かどうかを確認する必要がある機能を実行しています。
私は次のようなものが欲しい:
ポップオーバーからこの参照を取得する方法はありますか、それとも本当に不可能ですか?
前もって感謝します、