2016-06-02 7 views
5

के लिए नींद/स्क्रीन सेवर अक्षम करने के लिए स्विफ्ट का उपयोग करना मैं स्विफ्ट का उपयोग करके अपने आवेदन के माध्यम से नींद मोड और स्क्रीनसेवर को अक्षम करने का एक तरीका ढूंढ रहा हूं। मुझे पता है कि questionbeenbefore से पूछा गया है, लेकिन कोई भी जवाब वर्तमान नहीं है (कम से कम स्विफ्ट के लिए; मुझे उद्देश्य-सी के बारे में पता नहीं है)।ओएसएक्स

मैंने मूल रूप से NSWorkspace.sharedWorkspace().extendPowerOffBy(requested: Int) का उपयोग करने का विचार किया, लेकिन Apple's documentation के अनुसार, यह वर्तमान में अनुपूरक है।

कोई सुझाव?

+0

क्या आपको इसका समाधान मिल गया है? यूआईएप्लिकेशंस के लिए, यह किया जा सकता है: 'UIApplication.shared.isIdleTimerDisabled = true', लेकिन' isIdleTimerDisabled' 'NSAplplication' का सदस्य नहीं है। यदि आपको कोई समाधान मिला तो मुझे खुशी होगी। – Andreas

+0

दुर्भाग्यवश एंड्रॉइड नहीं, मैंने नहीं किया है। – Matt

उत्तर

1

मैं हाल ही में इस answer पर आया था। यह ऐप्पल में Q&A1340 से लिंक करता है, और स्विफ्ट में लिस्टिंग 2 का अनुवाद करता है।

मैंने इसे किसी भिन्न कोड में दोबारा प्रतिक्रिया दी, जो दिखाता है कि उदाहरण के लिए, आप उन्हें पूरे लूप का उपयोग कैसे कर सकते हैं। मैंने कोड की जांच की, और यह काम करता है।

var assertionID: IOPMAssertionID = 0 
var success: IOReturn? 

func disableScreenSleep(reason: String = "Unknown reason") -> Bool? { 
    guard success != nil else { return nil } 
    success = IOPMAssertionCreateWithName(kIOPMAssertionTypeNoDisplaySleep as CFString, 
              IOPMAssertionLevel(kIOPMAssertionLevelOn), 
              reason as CFString, 
              &assertionID) 
    return success == kIOReturnSuccess 
} 

func enableScreenSleep() -> Bool { 
    if success != nil { 
     success = IOPMAssertionRelease(noSleepAssertionID) 
     success = nil 
     return true 
    } 
    return false 
} 

Q&A1340 answer भी बताते हैं कि NSWorkspace.shared का उपयोग कर केवल ओएस एक्स < 10.6 समर्थन करने के लिए इस्तेमाल किया जाना चाहिए।

+0

मुझे स्विफ्ट में लिस्टिंग 3 का अनुवाद करने में गंभीर समस्याएं आ रही हैं, और इसलिए उस पर सहायता नहीं कर सकती है। अगर कोई एक से लिंक कर सकता है, तो मैं बहुत खुश हूं। जब मैं स्विच स्टेटमेंट का अनुवाद करने का प्रयास करता हूं तो समस्याएं उत्पन्न होती हैं। – Andreas