2011-07-22 10 views
0

私のアプリには1つのフローティングNSPanelがあり、マウスを使って移動することができます。自分のNSPanelをメイン画面内に常に表示したい。 NSPanelの元の幅と高さをすべての面で画面の境界内で再配置するコードが必要です。NSSPreen可視領域内にNSPanelを保持する方法

おかげで、

答えて

0

サブクラスNSPanelフレーム相対メソッドをオーバーライドします。 setFrameOrigin:,setFrame:display:など(すべての方法を確認するにはdocumentationを参照)。有望な- (NSRect)constrainFrameRect:(NSRect)frameRect toScreen:(NSScreen *)screenメソッドもあります。

+0

ありがとうございます、私はドキュメントをチェックしてお知らせします。 – AmitSri

+0

私はそのようなサブクラスを私の必要に応じてしました。タスクはあなたのものと同じではありませんでしたが、一般的には似ています。私は、ムールルールでパネルの動きやサイジングを制限したいと考えていました。 setFrameOrigin:とSetFrame:display:を無効にしてください。残念ながら、クラスは非常に特殊で複雑なので、コードを公開することはありません。 – Gobra

+0

ありがとう、私はまだそのようなサブクラスを作ろうとしていますが、まだ成功しませんでした。 – AmitSri