Làm cách nào để đặt kích thước cửa sổ theo chương trình? Tôi có một cửa sổ trong IB và tôi muốn đặt kích thước của nó trong mã của tôi để làm cho nó lớn hơn.Đặt NSWindow Kích thước lập trình
Trả lời
Sử dụng -setFrame:display:animate:
để kiểm soát tối đa:
NSRect frame = [window frame];
frame.size = theSizeYouWant;
[window setFrame: frame display: YES animate: whetherYouWantAnimation];
Lưu ý rằng tọa độ cửa sổ lộn với những gì bạn có thể được sử dụng để. Điểm gốc của hình chữ nhật nằm ở dưới cùng bên trái của nó trong Quartz/Cocoa trên OS X. Để đảm bảo điểm gốc vẫn giữ nguyên:
Sử dụng setFrame:display:animate:
[window setFrame:NSMakeRect(0.f, 0.f, 200.f, 200.f) display:YES animate:YES];
không biết những gì NSMakeFrame là. Tôi sử dụng NSMakeRect. –
Thực sự có vẻ là +/- cần được đảo ngược để giữ cửa sổ từ di chuyển trên màn hình:
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;
Hoặc vẫn tốt hơn: frame.origin.y + = (frame.size.height - theSizeYouWant.height); – mojuba
Swift phiên bản
var frame = self.view.window?.frame
frame?.size = NSSize(width: 400, height:200)
self.view.window?.setFrame(frame!, display: true)
@ Leo của câu trả lời có một điểm, hoặc ít nhất tôi đã thấy điều tương tự - +/- nên được đảo ngược. –
Tôi đã thử mã này nhưng cửa sổ của tôi vẫn di chuyển xuống dưới. bất kỳ giải pháp nào để ngừng di chuyển cửa sổ. –
Hoạt động hoàn hảo cho tôi. Tôi muốn lập trình thay đổi kích thước một bộ điều khiển cửa sổ đang được trình bày dưới dạng một khung nhìn trang tính. Cảm ơn! – Supertecnoboff