मै मैक एप्लिकेशन पर काम कर रहा हूं, और मैं प्रारंभिक विंडो को अधिकतम स्थिति में बनाना चाहता हूं, जैसे कि जब आप प्लस साइन के साथ हरे बटन दबा रहे हों। मैं नहीं चाहता कि यह पूर्ण स्क्रीन हो।ओएसएक्स एप्लीकेशन: खिड़की को अधिकतम कैसे बनाया जाए?
उत्तर
आप लक्ष्य फ्रेम के रूप में NSScreen के visibleFrame
का उपयोग करके अधिकतम उपलब्ध स्थान पर विंडो को "ज़ूम" कर सकते हैं। मान लीजिए कि window
चलो अपने NSWindow IBOutlet है:
if let screen = NSScreen.mainScreen() {
window.setFrame(screen.visibleFrame, display: true, animate: true)
}
उदाहरण के लिए, AppDelegate.swift में:
import Cocoa
@NSApplicationMain
class AppDelegate: NSObject, NSApplicationDelegate {
@IBOutlet weak var window: NSWindow!
func applicationDidFinishLaunching(aNotification: NSNotification) {
if let screen = NSScreen.mainScreen() {
window.setFrame(screen.visibleFrame, display: true, animate: true)
}
}
अपने जूम राज्य में कोई एप्लिकेशन के रूप में एक ही बात नहीं है "को बड़ा किया।" हरा प्लस आइकन ज़ूम इंगित करता है, जिसका अर्थ है "इस सामग्री के लिए उपयुक्त आकार।" कुछ अनुप्रयोगों में जो दृश्यमान फ्रेम (जैसे एरिक डी चर्चा करता है), लेकिन यह लगभग कुछ भी हो सकता है। उदाहरण के लिए एक सफारी विंडो ज़ूम करने का प्रयास करें।
मान लीजिए कि आप वास्तव में "अधिकतम" और "ज़ूम" नहीं चाहते हैं, तो एरिक सही रास्ते पर है, लेकिन इसे बेहतर किया जा सकता है। सबसे पहले, यदि आपके पास विंडो है तो आपको विंडो की स्क्रीन का उपयोग करना चाहिए। साथ ही, आपको लॉन्च के दौरान विंडो का आकार बदलना नहीं चाहिए (क्योंकि यह लॉन्च पर अजीब लग सकता है)।
func applicationDidFinishLaunching(aNotification: NSNotification) {
if let screen = window.screen ?? NSScreen.mainScreen() {
window.setFrame(screen.visibleFrame, display: true)
}
}
आप आवेदन प्रतिनिधि में डालने के बजाय इस प्रबंधन के लिए एक NSWindowController
उपयोग करने पर विचार कर सकते हैं। उस स्थिति में, आप इसे windowDidLoad
में डाल सकते हैं। विंडो नियंत्रक ऐपकिट में एक बहुत ही आम उपकरण हैं (नियंत्रण नियंत्रकों के विपरीत, जो ऐतिहासिक रूप से आम नहीं हैं)।
यदि आप वास्तव में ज़ूम व्यवहार चाहते हैं, तो NSWindowDelegate
विधि windowWillUseStandardFrame(_:defaultFrame:)
के साथ स्वयं को परिचित करें। आपको आम तौर पर लॉन्च पर zoom(_:)
पर कॉल नहीं करना चाहिए क्योंकि यह एनिमेट होगा, लेकिन प्रतिनिधि में जो भी तर्क आप करते हैं, उसका उपयोग अपने फ्रेम की गणना करने के लिए किया जाना चाहिए। फिर, मुख्य स्क्रीन की बजाय खिड़की की स्क्रीन पर रहने के लिए अपने फ्रेम को समायोजित करना सुनिश्चित करें।
आदर्श रूप से, आपको वास्तव में अंतिम फ्रेम का सम्मान करना चाहिए जिसे उपयोगकर्ता ने दृश्यमान फ्रेम पर मजबूर करने के बजाय उपयोग किया था। कोको में frameAutosave
कहा जाता है यदि आप और अधिक शोध करना चाहते हैं। एक विंडो नियंत्रक आपको कुछ हद तक स्वचालित रूप से प्रबंधित करने में मदद करेगा यदि आप इंटरफ़ेस बिल्डर में एक ऑटोसवे नाम सेट करते हैं। (हालांकि दृश्यमान फ्रेम प्राप्त करने के लिए पहले लॉन्च पर फ्रेम की गणना करने की आवश्यकता से थोड़ा जटिल है, इसलिए यह पूरी तरह से स्वचालित नहीं होगा।)
अपने डिफ़ॉल्ट फ्रेम को किसी भी रूप में दृश्यमान फ्रेम बनाने से पहले कुछ सावधान विचार दें मामला। यह बड़े मॉनीटर पर वास्तव में बहुत बड़ा हो सकता है (वहां अभी भी बहुत सारे 30 "सिनेमा प्रदर्शित हैं, लेकिन 27 पर भी" यह बहुत भारी हो सकता है)। कभी-कभी यह आपके ऐप के आधार पर ठीक है, लेकिन मुझे अक्सर लगता है कि यह अधिकतम प्रारंभिक आकार को परिभाषित करने योग्य है (जबकि उपयोगकर्ता इसे बड़ा करने की अनुमति देता है)।
हाय दोस्तों मैं वास्तव में आपकी मदद की सराहना करता हूं।
मैं दस्तावेज़ आधारित मैक एप्लिकेशन पर काम कर रहा हूं। मैंने आपके द्वारा प्रदान किए गए कोड को दस्तावेज़ क्लास के मेकविंडो कंट्रोलर() में रखा है और यह एक आकर्षण की तरह काम करता है।
बहुत बहुत धन्यवाद। मैं जिस कोड का उपयोग करता हूं वह यहां है।
override func makeWindowControllers() {
// Returns the Storyboard that contains your Document window.
let storyboard = NSStoryboard(name: "Main", bundle: nil)
let windowController = storyboard.instantiateControllerWithIdentifier("Document Window Controller") as! NSWindowController
self.addWindowController(windowController)
if let screen = NSScreen.mainScreen() {
windowController.window?.setFrame(screen.visibleFrame, display: true, animate: true)
}
}
- 1. खिड़की पूर्णस्क्रीन/दृश्य बिल्डर में अधिकतम कैसे बनाया जाए?
- 2. ओएसएक्स टर्मिनल - एप्लीकेशन फोकस
- 3. javax.faces.model.SelectItem को कैसे बनाया जाए
- 4. धागा कैसे बनाया जाए?
- 5. सापेक्ष सिम्लिंक शक्तियों को कैसे बनाया जाए?
- 6. मेरे अनुप्रयोगों को "skinnable" कैसे बनाया जाए?
- 7. php अगर str_replace को कैसे बनाया जाए?
- 8. व्युत्पन्न कक्षा को कैसे बनाया जाए?
- 9. आईफोन ऐप को "स्किनेबल" कैसे बनाया जाए?
- 10. ArrayList को ठीक से कैसे बनाया जाए?
- 11. एचटीएमएल पार्सर कैसे बनाया जाए?
- 12. क्रोम एक्सटेंशन को पूर्ण स्क्रीन में कैसे बनाया जाए?
- 13. एंड्रॉइड में सेलेस्टिया कैसे बनाया जाए?
- 14. सेटिंग्स मॉड्यूल जैसे आईओएस कैसे बनाया जाए?
- 15. पाइप "ड्राई-रन" कैसे बनाया जाए?
- 16. एक smtp सर्वर कैसे बनाया जाए?
- 17. msvc2010 के साथ जीएसएल कैसे बनाया जाए?
- 18. जावा से ओएसएक्स .plist फ़ाइलों को कैसे पढ़ा जाए?
- 19. ओएसएक्स के भौतिक स्क्रीन आकार को कैसे पढ़ा जाए?
- 20. विंडोज पर qpdf कैसे बनाया जाए?
- 21. इसे छोटा (पायथनिक) कैसे बनाया जाए?
- 22. एक साधारण उलटा इंडेक्स कैसे बनाया जाए?
- 23. monodevelop के साथ x64 कैसे बनाया जाए?
- 24. एप्लिकेशन की तरह viber कैसे बनाया जाए?
- 25. अपाचे को धीमा और अविश्वसनीय कैसे बनाया जाए?
- 26. जानें कि लाटेक्स शैलियों को कैसे बनाया जाए?
- 27. स्कैला परियोजना को उचित तरीके से कैसे बनाया जाए?
- 28. थैंक्सगिविंग तुर्की के आधे हिस्से को कैसे बनाया जाए?
- 29. स्कैला/अक्का/प्ले प्रोजेक्ट को कैसे बनाया जाए?
- 30. टेबल हेड पर गोलाकार कोनों को कैसे बनाया जाए
क्षमा करें मै मैक दुनिया में बहुत नया हूं। मैंने बस इस कोड को NSViewController में रखा है: viewDidLoad और यह काम नहीं कर रहा है क्या आप मुझे यह बता सकते हैं कि यह कोड बिल्कुल कहां रखा जाए।यह मेरा कोड है यदि स्क्रीन = NSScreen.mainScreen() { self.view.window? .setFrame (screen.visibleFrame, display: true, एनिमेट: सत्य) } –
उदाहरण के साथ मेरा उत्तर अपडेट किया गया है। – Moritz
स्विफ्ट 3 के लिए अपडेट करें: '.main()' के साथ '.mainScreen() 'को प्रतिस्थापित करें। – Moritz