заблокировать положение окна - PullRequest
4 голосов
/ 08 мая 2009

возможно ли заблокировать положение окна? Я не прошу setIgnoresMouseEvents. Мне нужно запретить пользователю перемещать окно, но он все равно должен использовать nstoolbar

спасибо заранее --molter

Ответы [ 2 ]

9 голосов
/ 23 июня 2011

Я бы согласился с Джейсоном на «нормальные» случаи. Но я думаю, что есть особые ситуации, когда это может уместно сделать такую ​​вещь. Очевидно, Apple тоже так думает; начиная с 10.6 - все, что вам нужно сделать, это вызвать NSWindows '

- (void)setMovable:(BOOL)flag

или переопределить

- (BOOL)isMovable;

в вашем NSWindow-подклассе для изменения подвижности окон.

Если это недоступно, API-интерфейс Quartz Event Services ( документация ) предоставляет способы предотвращения перемещения окна. Один из способов - установить касание события и манипулировать входящими событиями, чтобы они содержали только начальное местоположение mousedown вместо обновленного (реального) места, когда пользователь начинает перетаскивать окно.

1 голос
/ 08 января 2010

Вы должны следовать совету Джейсона и использовать режим киоска. См. техническое примечание на нем.

...