Установите NSWindow Size программно
Как я могу установить размер окна программно? У меня есть окно в IB, и я хочу установить его размер в моем коде, чтобы сделать его более крупным.
Ответы
Ответ 1
Используйте -setFrame:display:animate:
для максимального контроля:
NSRect frame = [window frame];
frame.size = theSizeYouWant;
[window setFrame: frame display: YES animate: whetherYouWantAnimation];
Обратите внимание, что координаты окна перевернуты с того, к чему вы могли бы привыкнуть. Точка начала прямоугольника находится в левом нижнем углу в Quartz/ Cocoa в OS X. Чтобы гарантировать, что точка начала остается той же:
NSRect frame = [window frame];
frame.origin.y -= frame.size.height; // remove the old height
frame.origin.y += theSizeYouWant.height; // add the new height
frame.size = theSizeYouWant;
// continue as before
Ответ 2
На самом деле кажется, что +/- нужно перевернуть, чтобы окно не двигалось на экране:
NSRect frame = [window frame];
frame.origin.y += frame.size.height; // origin.y is top Y coordinate now
frame.origin.y -= theSizeYouWant.height; // new Y coordinate for the origin
frame.size = theSizeYouWant;
Ответ 3
Используйте setFrame:display:animate:
[window setFrame:NSMakeRect(0.f, 0.f, 200.f, 200.f) display:YES animate:YES];
Ответ 4
Быстрая версия
var frame = self.view.window?.frame
frame?.size = NSSize(width: 400, height:200)
self.view.window?.setFrame(frame!, display: true)