2012-04-10 27 views
7

मैंने यह तय करने का एक बड़ा समय बिताया कि यह निर्धारित करने के लिए कि क्या मेरा एनएसविंडो पूर्ण स्क्रीन मोड में है या नहीं और पूर्ण स्क्रीन मोड में या बाहर जाने से इसे सक्षम/अक्षम करने के तरीके को कैसे अक्षम किया जाए। यह तब उपयोगी होता है जब मैं किसी अन्य दृश्य को देखने के लिए एनिमेट कर रहा हूं या कुछ ऐसा कर रहा हूं जहां पूर्ण स्क्रीन मोड में या बाहर जा रहा है, तो गड़बड़ हो जाएगी। एक विंडो को आकार बदलने से लॉक करने की तरह सॉर्ट करें।हाउटो: क्या एनएसविंडो फुलस्क्रीन मोड (शेर) और सक्षम/अक्षम करने में है?

इसका उत्तर नीचे पोस्ट किया गया है।

उत्तर

10

यहां रुचि रखने वाले किसी भी व्यक्ति के लिए आप वर्गीकृत या उपयोग कर सकते हैं। मैं कुछ समय बिताया ऐसा करने के तरीके के लिए देख रहा है और सोचा था कि यह बाहर किसी और की मदद कर सकते हैं:

यह एक आपको पता चलेगा कि आप कर रहे हैं या पूर्ण स्क्रीन मोड में नहीं हैं:

@implementation MyWindow 

- (void) setStyleMask:(NSUInteger)styleMask { 

    MyWindowController *wndController = (MyWindowController *)self.windowController; 
    wndController.fullScreenMode = (styleMask & NSFullScreenWindowMask); 
    [super setStyleMask:styleMask]; 
} 

@end 

मैं एक की स्थापना कर रहा हूँ मेरी खिड़की नियंत्रक में संपत्ति।

- (void) enableFullScreen { 

    NSWindowCollectionBehavior behavior = [self.window collectionBehavior]; 
    behavior |= NSWindowCollectionBehaviorFullScreenPrimary; 
    [self.window setCollectionBehavior:behavior]; 
} 

- (void) disableFullScreen { 

    NSWindowCollectionBehavior behavior = [self.window collectionBehavior]; 
    behavior ^= NSWindowCollectionBehaviorFullScreenPrimary; 
    [self.window setCollectionBehavior:behavior]; 
} 

: में या पूर्ण स्क्रीन मोड से बाहर जाने के लिए क्षमता को अक्षम

@implementation NSWindow (CategoryNSWindow) 

#pragma mark - Full Screen Mode: 

- (BOOL) inFullScreenMode { 

    return (self.styleMask & NSFullScreenWindowMask); 
} 

@end 

इन दो तरीकों सक्षम हो जाएगा /:

पूर्णता यहाँ के लिए की तरह क्या NSWindow पर श्रेणी लगेगा है कृपया कृपया विधियों का नाम बदलें।

2

NSWindowDelegate

  • DidWindowEnterFullScreen
  • DidWindowExitFullScreen

    जो आप अपनी समस्या को हल करने में मदद की दो घटनाओं रहे हैं। NSWindowDelegate की

+0

यह सच है उन सूचनाओं की तरह हैं, लेकिन क्या मैं प्रस्तुत जानने का एक वास्तविक समय तरीका है। यह भी सुनिश्चित नहीं है कि आप इसे जानते हैं, लेकिन यदि आप विंडोविल्लइंटरफुलस्क्रीन पर कब्जा करते हैं तो आपको willUseFullScreenContentSize के लिए अन्य प्रतिनिधि को भी लागू करना होगा: यदि आप मुझसे पूछें तो यह दर्द का दर्द है। – Arvin

1

दो घटनाओं हैं:

– windowDidEnterFullScreen: 
– windowDidExitFullScreen: