問題タブ [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 - NSOutlineView で選択した行の位置を返す
アウトライン ビューの行をダブルクリックすると、次のコードを使用して NSPopover が表示される NSOutlineView があります。
コードは正常に動作しますが、アウトライン ビューの垂直方向の高さの中央にポップオーバーを配置します。アウトライン ビューで選択 (ダブルクリック) された行の横にポップアップを表示したいと思います。選択した行の位置を返すためにアウトライン ビューを呼び出すことができますか? ドキュメントでそのような方法を見つけることができなかったようです。明らかに、そのような呼び出しである [nid bounds] を置き換えます。それ以外の場合は、これを回避する方法について他の提案をいただければ幸いです。
objective-c - NSPopover からのサブビューにマウスダウン/アップがあるかどうかを追跡します
NSPopover
ここに私の現在のオブジェクト階層があります: ビューには、別のビュー (An NSControl
)を含むを開くボタンがあります。
で mouseup イベントをリッスンしています。NSPopover
その時点で を閉じますNSPopover
。
ただし、私がいる場合は閉じたくありませんNSControl
(つまり、にマウスダウン/マウスアップイベントがあった場合NSControl
)
したがって、私の計画は、コントロールでマウスアップ/ダウンイベントが見つかったときを特定し、次にNSPopover
マウスアップイベントリスナーの終了を無視することですNSPopover
誰かが前にこのようなことをしたことがありますか? 何か案は?前もって感謝します!
objective-c - NSPopover でコンテンツを設定できません
NSBezierPath 上のポイントから始まる NSView で NSPopover を表示しています。問題なくポップオーバーを表示できますが、2 つのテキスト フィールドの文字列値を設定できないようです。ポップオーバーとコンテンツ ビューは、それぞれ NSPopover と NSViewController のカスタム サブクラスです。NSPopover サブクラスは NSPopover のデリゲートでもありますが、デリゲート メソッドを実装していないため、それを行う必要があるかどうかもわかりません。
NSViewController のサブクラスは次のとおりです。
そして NSPopover の私のサブクラス:
これは、ポップオーバーを開く NSView サブクラスのコードです。
ではWeightPopoverViewController.xib
、 を に設定しFile's Owner
、WeightPopoverViewController
ビューをカスタム NSView に接続しました。この xib ではWeightPopoverController
、dateLabel と weightLabel がテキスト フィールドに接続され、contentViewController が に設定された Object も設定されていますFile's Owner
。
私がどこで間違っているのかは、NSPopover のクラス/インスタンス変数をどのように構成したかに関連している可能性が高いと思いますが、私が行った調査と読んだドキュメントから、どこに行ったのかクラックできないようです違う。どんな助けでも大歓迎です。
アップデート:
NSPopover サブクラスをコードと IB から削除しました。アウトレットを NSViewController に配置し、それらを IB に接続しました。ただし、文字列値を設定することはまだできません。以下は、「Property 'weightLabel' not found on object of type NSPopover*'」というエラーでコンパイルされません。
NSPopover サブクラスとまったく同じプロパティ定義がありますが、現在は NSViewController にあります。これは実際に私が以前持っていたもので、NSViewController からプロパティを設定できなかったので、NSPopover のサブクラスを介して設定する必要があると考えました。これが、クラス/インスタンス変数の構成方法に問題があると思った理由です。
objective-c - ヨセミテダークカラーの NSPopover 色反転
を使用してNSPopover
おり、システム ドックの色を暗い色に変更すると (Yosemite の新機能)、ビュー内の一部の要素の色が反転します。
たとえば、一部のラベルが黒から灰色に変わったり、テキスト フィールドの背景が白から黒に変わったりします。白い背景のビューがある場合、ぼやけた暗い効果に変わります。
2つの質問:
この動作をキャンセルして、UI を通常モードのように動作させることはできますか?
要素の色を反転させるルールはありますか?
要素が変化するものとそうでないものがあるように見えるからです。
これは Yosemite 通常モードでの私のアプリです:
そして、これは Yosemite のダーク モードです。
xcode - NSStatusItem アプリのフォーカス
メニューバー アプリケーションで 1Password または Dropbox と同じ動作を実現するにはどうすればよいですか。
- メニューバーのアイコンやポップオーバーをクリックしてもフォーカスが奪われません。たとえば、TextEdit で 1Password/Dropbox を開いているときに、点滅しているカーソルは消えますが、ウィンドウ自体は背景に移動しませんが、1Password のテキスト フィールドに入力できます。
- 最初はフォーカスされていませんでしたが、別のアプリケーションに戻ると消えます
オプション MouseEnteredAndExited、AssumeInside、および ActiveAlways を指定した NSTrackingArea を使用して、Dropbox ポップオーバー テーブル ビューでマウス オーバーがどのように機能するかを理解しました。
NSStatusItem から開く NSPopover で同じ動作を実行しようとしています。
objective-c - OSX 10.10 Yosemite で NSPopover の NSOutlineView を読み取れない
通常は暗い背景の上に表示される( source list )がNSPopover
含まれています (ただし、常に暗いとは限りません)。には透明な背景があり、ビューにうまく溶け込みます。これは OS X 10.9 では見栄えがよくなりましたが、10.10 ではシステムが背景に基づいてテキストの色を変更します。その結果、テキストが完全に灰色になり、場合によっては判読できなくなります。NSOutlineView
NSOutlineView
NSPopover
NSOutlineView
ポップオーバーを HUD スタイルに変更すると、読みやすくなります。
ただし、この場合、明るい背景 (上) では問題になります。
NSOutlineView
背景に関係なく色が同じになるようにテキストの色を制御する方法はありますか? テキスト セルの色をシステム カラーではなく黒に設定しようとしましたが、効果がありません。
また、透明度を制御/削除できNSPopover
ますか? NSPopover
を利用する を読んだことがありますがNSVisualEffectView
、これにはいくつかの外観コントロールがありますが、NSPopover からアクセスする方法がわかりません。
NSOutlineView
審美的な理由から、私はを無地の背景ビューの下に置きたくありません。この場合、ポップオーバーの背景とその矢印の色が不一致になります。
編集:
次のコードを使用して透明度を削除できました。
動作しますが、醜いハックのように感じます。より良い提案を歓迎します。
EDIT2:
アクアスタイルに合わせるとこんな感じ。透明性はなく、テキストは黒です。
objective-c - ビューの外をクリックしてもメニュー バー ビューが非表示にならないようにする
私たち全員が同じページにいるように、すぐに写真を添付します. これが私のアプリケーションです...
NSPopover をクリック可能にしようとしていますが、クリックがメニュー ビューの境界の外にあるため、アプリケーションにどのような動作が設定されていても非表示になります。
境界の外をクリックしてもメニュービューを開いたままにするか、ポップオーバーを別の方法でクリック可能にする方法について誰かが考えているかどうか疑問に思っていました。ありがとう!