問題タブ [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.
macos - NSPopover 内で動作するタブ オーダーを取得できません
NSPopover 内にビューがあり、タブ オーダーを正しく設定できません。4 つのテキスト フィールド内に nextKeyView を設定しました。ただし、TextField1 -> TextField2 ではなく、TextField1 から Search1 に反転する傾向があります。[self.view.window makeFirstResponder:textField1] も [self.view.window setInitialFirstResponder:textField1] と recalculatekeyviewloop を挿入しようとしましたが、うまくいきませんでした。
どんな助けでも大歓迎です。
objective-c - NSPopover ウィンドウにアクセスしてレベルを設定しますか?
ポップオーバーが表示されたら、ウィンドウ レベルなど、ポップオーバーのウィンドウの基本設定を設定できるかどうかに興味があります。私のテストでは、ポップオーバーはウィンドウのように見えますがNSWindow
、setLevel:
.
でウィンドウレベルを設定することは可能NSPopover
ですか?
objective-c - NSPopover と Snow Leopard
Mac アプリに NSPopover を実装しました。10.7 Lion では問題なく動作しますが、10.6 Snow Leopard で起動するとクラッシュします。NSPopover のサポートが Lion で導入され、10.6 ではサポートされていないことは知っていますが、アプリを古き良き Snow Leopard と互換性を持たせる方法を知りたいです。
私は Mac 開発にかなり慣れていませんが、コードは次のとおりです。任意のヒント?(ポップオーバーは MainWindow.xib にあります)
.h
.m
objective-c - NSPopover と NSTextField を使用した NSStatusItem
NSTextField を含む NSPopover を表示する NSStatusItem がありますが、テキスト フィールドは編集できませんが、Xcode ではそうです。現在、これは既知のバグであり、誰かがここに投稿した解決策があるようです。私は本当にこのバグを回避する必要があります。
便宜上、ここで答えを引用します。
主な問題は、キーボード イベントの動作方法です。NSTextField (および彼のすべてのスーパービュー) はキーボード イベントを受け取りますが、彼は何もしません。これは、ポップオーバーがアタッチされているビューが、キー ウィンドウにならないウィンドウにあるために発生します。そのウィンドウにアクセスすることはできません。少なくとも私にはできませんでした。したがって、解決策は、カテゴリを使用して、アプリケーション内のすべての NSWindow に対してメソッド canBecomeKeyWindow をオーバーライドすることです。
これにより、ポップオーバーが完全にレスポンシブになります。canBecomeKeyWindow に NO と応答する別のウィンドウが必要な場合は、いつでもサブクラスを作成できます。
私は自分が何をすべきかを本当に理解していません。これらの 2 つのファイル NSWindow+canBecomeKeyWindow (.h および .m) を作成するだけで済みますか? それは私にはうまくいかないからです。
これについてはよくわかりませんが、NSPopover を表示する NSWindow を実際に使用している場合にのみ機能しますか? NSWindow を使用していませんが、NSTextField を編集可能にするにはどうすればよいですか?
ありがとう。
objective-c - クリック時に NSTokenField トークンから NSPopover を表示
トークンがクリックされたときにトークンNSPopover
からを表示しようとしています。NSTokenField
これらのトークンにはメニューを表示する方法が組み込まれているため、設計の観点からは、そのアクションと同じです。
ただし、トークンがクリックされたときに任意のコードを実行する (良い) 方法はないようです。
何とかコードを に滑り込ませましたが- tokenField:menuForRepresentedObject:
、エレガントとはほど遠いものです。
トークンがクリックされたときにコードを実行する唯一の方法であると仮定すると- tokenField:menuForRepresentedObject:
、まだ別の問題があります。NSRect
トークンを表す を取得して、トークンとNSPopover
の視覚的な関係を維持できるようにすることです。文字列をジャグリングしたり、トークンが最初に来る方法を理解したりしようとしましたが、信頼性が低く、文書化されていない方法が必要です。
結論:NSPopover
選択したトークンのを で表示するにはどうすればよいNSTokenField
ですか?
objective-c - NSPopover内のNSTextFieldは、マウスをクリックするまでキーになりません
NSStatusItemとの相互作用から表示されるNSPopoverがあります。この状況で入力を可能にするために必要なハックについてブログに書いています:http://blog.brokenrobotllc.com/using-nspopover-with-nsstatusitem
NSPopoverのコンテンツビュー内にNSTextFieldがあります。NSPopoverを開くと、NSTextFieldがキーであるかのように表示されます(カーソルが点滅します)。ただし、入力しても何も表示されません。フィールドでマウスをクリックすると、入力がそこに表示され始めます。
popoverDidShow:でNSWindowのmakeFirstResponderを呼び出すなどのことを試しました。これからの動作に変化はありませんでした。誰かここに何かアイデアがありますか?
xcode - NSPopoverをNSStatusbarからファーストレスポンダーにするにはどうすればよいですか?
私の質問は単純で簡単です。NSPopoverをNSStatusbarからファーストレスポンダーにするにはどうすればよいですか?
大きなXCodeプロジェクトへのリンクではなく、短いコードを求めています。ありがとう。
cocoa - NSTextView 座標を画面座標に変換する
私のアプリでは、NSTextView でポップオーバーを表示したいので、NSTextView で選択した四角形の座標を画面座標に変換する必要があります。私はこのコードを試しました:
ほぼ問題なく動作しますが、返された rect は "x" によって非常に "壊れた" 原点を持っています。たとえば、rect.origin.x
最初が 670 の場合、最後は 1022 になります。
何か案は?
ありがとう。
osx-lion - NSPopover のフィールド エディターの構成
ここにココアの初心者がいます: そして、私は最初にすべての本当に難解なものに取り掛かっているようです. クリックするとデフォルトでコンテンツが選択され、選択色を変更できる NSTextField が必要でした。このフォーラムには、フィールド エディターの謎を解き明かすのに十分な情報がありました。NSTextField をサブクラス化し、becomeFirstResponder メソッドをオーバーライドしました。
ここで、selectionColor は、NSBackgroundColorAttributeName にキー設定された NSColor オブジェクトを持つ 1 項目の NSDictionary です。これは、ウィンドウとパネルのテキスト フィールドでは完全に機能しますが、NSPopover のビューのフィールドではまったく機能しません。実際、テキストの選択が不可能になります。フィールドをクリックして入力することは引き続き可能ですが、カーソルをテキスト内でドラッグして選択することはできません。どうにかしてフィールド エディターの設定を誤っているとしか結論付けられません。私はそれを正しく参照していますか?
objective-c - NSCollectionView に NSPopover を表示しますか?
(注: 質問は以前にも出されており、1 年以上前に決定的ではない結果が得られました。願わくば、もう少し詳しく知り、解決できますか?)
ダブルクリックしたときに NSCollectionItem の上に NSPopover を表示しようとしています。私の NSCollectionView は正しく設定され、入力を受け取ります。
(コードをコピーして他の NSView サブクラスに貼り付けると、問題なく動作します。NSCollectionView には、混乱しているように見えるものがあります。)
コード:
BIECollectionViewItem.h
BIECollectionViewItem.m
mouseDown イベントにログステートメントを追加すると、イベントが発生していることが確認できます。しかし、NSPopover は表示を拒否します。
NSPopover を NSCollectionView の上に表示する方法を知っている人はいますか?