عرض OS X نافذة الشاشة الكاملة على جهاز العرض الثانوي باستخدام الكاكاو

StackOverflow https://stackoverflow.com/questions/401240

  •  03-07-2019
  •  | 
  •  

سؤال

وأنا أعمل على التطبيق الكاكاو ماك حيث أحتاج إلى عرض نافذة / عرض على جهاز عرض ثانوي، ملء الشاشة. أنا أعرف كيفية إنشاء النافذة التي يمكن أن تنجر على جهاز العرض الثانوي، ولكن أنا كان يريد أن برمجيا إنشاء إطار وجعله كامل الشاشة على الشاشة الخارجية. شكرا للمساعدة.

هل كانت مفيدة؟

المحلول

أولا، تحديد الشاشة التي تريد استخدامها من قبل بالتكرار عبر [شاشات NSScreen].

وإنشاء نافذة الشاشة الكامل مع:

NSScreen *screen = /* from [NSScreen screens] */
NSRect screenRect = [screen frame];
NSWindow *window = [[NSWindow alloc] initWithContentRect:screenRect
    styleMask:NSBorderlessWindowMask
    backing:NSBackingStoreBuffered
    defer:NO
    screen:screen];
[window setLevel: CGShieldingWindowLevel()];

وقد ترغب في جوجل CGDisplayCapture () كذلك.

نصائح أخرى

ويمكنك استدعاء الأسلوب enterFullScreenMode:withOptions: من NSView إلى acheieve السلوك المطلوب.

وانظر <لأ href = "http://developer.apple.com/DOCUMENTATION/Cocoa/Reference/ApplicationKit/Classes/NSView_Class/Reference/NSView.html#//apple_ref/occ/instm/NSView/enterFullScreenMode:withOptions : "يختلط =" noreferrer نوفولو "> أبل الوثائق

ومقروءة على هنا و <لأ href =" http://developer.apple.com/DOCUMENTATION/GraphicsImaging/Reference/Quartz_Services_Ref/Reference/reference.html#//apple_ref/doc/constant_group/Display_Mode_Standard_Properties "يختلط = "نوفولو noreferrer"> هنا عن الخيارات التي يمكن توفيره إلى هذا الأسلوب.

ويمكنك استخدام [NSScreen screens] للحصول على قائمة من الشاشات المتاحة. انظر> وأ href = "http://developer.apple.com/DOCUMENTATION/Cocoa/Reference/ApplicationKit/Classes/NSScreen_Class/Reference/Reference.html#//apple_ref/doc/c_ref/NSScreen" يختلط = "نوفولو noreferrer" > هنا لمزيد من التفاصيل.

ووكامل الشاشة نافذة الرسوم المتحركة هي متقلبة ولا تبدو جيدة في رأيي. وجهة نظر ملء الشاشة هو أكثر وضوحا.

وجرب هذا:

- (void)toggleMyViewFullScreen:(id)sender
{
    if (myView.inFullScreenMode) {
      [myView exitFullScreenModeWithOptions:nil];
    } else {
      NSApplicationPresentationOptions options =
          NSApplicationPresentationHideDock |       
          NSApplicationPresentationHideMenuBar;

      [myView enterFullScreenMode:[NSScreen mainScreen] withOptions:@{
             NSFullScreenModeApplicationPresentationOptions : @(options) }];
                                                                                 }];
    }
}

ويمكنك توصيل هذا إلى عنصر القائمة ملء الشاشة في القائمة إطار (بعد إدراج ذلك في بنك الاستثمار القومي الخاص بك) ولكن تأكد لتغيير الإجراء الذي عنصر القائمة حرائق toggleMyViewFullScreen الخاص بك: أو الخاص يمكن استدعاء toggleMyViewFullScreen برمجيا أو عند تحميل التطبيق الخاص بك.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top