2012-02-12 2 views
3

Я хочу сжать NSWindow, изменив высоту рамки и получив ее в верхней части окна. Я пробовал:Rezize NSWindow сверху

NSRect frame = [mainWindow frame]; 
frame.origin.y += 71; 
frame.size.height -= 71; 
[mainWindow setFrame:frame display:YES animate:YES]; 

Но это сделало окно меньше снизу, а не сверху.

ответ

2

В какао на OS X начало координат находится в левом нижнем углу экрана. Это означает, что увеличение позиции y окна будет перемещать его по экрану. Поскольку вы хотите изменить верхнюю часть окна, вы хотите, чтобы нижний угол оставался на месте, а это значит, что вы не должны менять свое происхождение. Простое изменение высоты приведет к сжатию окна сверху.

NSRect frame = [mainWindow frame]; 
frame.size.height -= 71; 
[mainWindow setFrame:frame display:YES animate:YES]; 
+0

Это не совсем трюк. В значительной степени окно сжалось со дна, а затем сдвинулось вниз. – fefwfefefwfwe

+0

Это интересно. Это отлично работает для меня. Вы делаете что-нибудь еще в окно примерно в одно и то же время? – ughoavgfhw

+0

Нет, просто ... но да внизу исчезает, где я хочу, чтобы вершина исчезла. – fefwfefefwfwe

Смежные вопросы