0
私のアプリには1つのフローティングNSPanelがあり、マウスを使って移動することができます。自分のNSPanelをメイン画面内に常に表示したい。 NSPanelの元の幅と高さをすべての面で画面の境界内で再配置するコードが必要です。NSSPreen可視領域内にNSPanelを保持する方法
おかげで、
私のアプリには1つのフローティングNSPanelがあり、マウスを使って移動することができます。自分のNSPanelをメイン画面内に常に表示したい。 NSPanelの元の幅と高さをすべての面で画面の境界内で再配置するコードが必要です。NSSPreen可視領域内にNSPanelを保持する方法
おかげで、
サブクラスNSPanelフレーム相対メソッドをオーバーライドします。 setFrameOrigin:,setFrame:display:など(すべての方法を確認するにはdocumentationを参照)。有望な- (NSRect)constrainFrameRect:(NSRect)frameRect toScreen:(NSScreen *)screen
メソッドもあります。
ありがとうございます、私はドキュメントをチェックしてお知らせします。 – AmitSri
私はそのようなサブクラスを私の必要に応じてしました。タスクはあなたのものと同じではありませんでしたが、一般的には似ています。私は、ムールルールでパネルの動きやサイジングを制限したいと考えていました。 setFrameOrigin:とSetFrame:display:を無効にしてください。残念ながら、クラスは非常に特殊で複雑なので、コードを公開することはありません。 – Gobra
ありがとう、私はまだそのようなサブクラスを作ろうとしていますが、まだ成功しませんでした。 – AmitSri