锁定nswindow的位置

时间:2009-05-08 14:20:56

标签: cocoa nswindow

是否可以锁定nswindow的位置?我不是要求setIgnoresMouseEvents。我需要阻止用户移动窗口,但他仍然可以使用nstoolbar。

提前thx --molter

2 个答案:

答案 0 :(得分:9)

我同意杰森的“正常”案件。 但我认为有一些特殊情况可以适合做这样的事情。 苹果也是这么认为的;从10.6开始 - 您需要做的就是致电NSWindows'

- (void)setMovable:(BOOL)flag

或覆盖

- (BOOL)isMovable;
在你的NSWindow子类中

来改变窗口的可移动性。

如果没有,Quartz Event Services API(documentation)提供了阻止窗口移动的方法。 一种方法是在用户开始拖动窗口时安装事件 - 点击并操纵传入事件以仅包含初始的mousedown位置而不是更新的(真实)位置。

答案 1 :(得分:1)

您应该遵循Jason的建议并使用自助服务终端模式。请参阅此technical note