मैं विंडो आकार को प्रोग्रामेटिक रूप से कैसे सेट कर सकता हूं? मेरे पास आईबी में एक खिड़की है और मैं इसे बड़ा बनाने के लिए अपने कोड में इसका आकार सेट करना चाहता हूं।एनएसविंडो आकार प्रोग्रामेटिक रूप से सेट करें
उत्तर
उपयोग -setFrame:display:animate:
अधिकतम नियंत्रण के लिए:
NSRect frame = [window frame];
frame.size = theSizeYouWant;
[window setFrame: frame display: YES animate: whetherYouWantAnimation];
ध्यान दें कि खिड़की निर्देशांक क्या आप के लिए इस्तेमाल किया जा सकता से फ़्लिप कर रहे हैं। एक आयत का मूल बिंदु पर अपने नीचे क्वार्ट्ज/कोको में छोड़ दिया 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
उपयोग setFrame:display:animate:
[window setFrame:NSMakeRect(0.f, 0.f, 200.f, 200.f) display:YES animate:YES];
पता नहीं क्या NSMakeFrame है: स्क्रीन पर जाने से। मैं एनएसएमकेरेक्ट का उपयोग करता हूं। –
यह वास्तव में लगता है है कि +/- जरूरत खिड़की रखने के लिए स्थिति में कर दिया करने के लिए
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;
या बेहतर अभी भी: frame.origin.y + = (frame.size.height - theSizeYouWant.height); – mojuba
स्विफ्ट संस्करण
var frame = self.view.window?.frame
frame?.size = NSSize(width: 400, height:200)
self.view.window?.setFrame(frame!, display: true)
@ लियो के उत्तर में एक बिंदु है, या कम से कम मैंने एक ही चीज़ देखी - +/- को उलट दिया जाना चाहिए। –
मैंने इस कोड को आजमाया है लेकिन फिर भी मेरी खिड़की नीचे की ओर बढ़ रही है। चलती खिड़की को रोकने के लिए कोई समाधान। –
मेरे लिए पूरी तरह से काम करता है। मैं एक विंडो नियंत्रक का प्रोग्रामेटिक रूप से आकार बदलना चाहता था जिसे शीट व्यू के रूप में प्रस्तुत किया जा रहा था। धन्यवाद! – Supertecnoboff