में NSMenu खुला होने पर NSTimer फायरिंग नहीं है मेरे पास एक टाइमर है जो एक बार बंद होने के बाद अलार्म को पुनरारंभ करने के लिए चलाता है।स्विफ्ट
alarm = NSTimer.scheduledTimerWithTimeInterval(
60 * minutesConstant + secondsConstant,
target:self,
selector: Selector("endSession"),
userInfo: nil,
repeats:false)
इसका चयनकर्ता समारोह एक विधा ध्वज सेट करता है और मूल कार्य है कि नए मिनट और सेकंड स्थिरांक साथ अलार्म सेट कहता है, और यह भी एक उपयोगकर्ता सूचना है कि सत्र पुन: प्रारंभ भेजता है।
मैं एक मेनू आइटम शेष समय
तो मैं कर रहा हूँ यह जाँच करने के लिए है कि मेरे अलार्म वास्तव में पुन: प्रारंभ करता है खोलने के साथ अद्यतन किया जाता है कि है, और अधिसूचना से पता चलता है कि एक बार यह शून्य हो जाती है । यह काम करता है, लेकिन जब मेरे पास मेनू खुलता है और यह शून्य हो जाता है तो यह 0:00 बजे रहता है और जब तक मैं मेनू से क्लिक नहीं करता तब तक टाइमर आग नहीं करता है, जिस बिंदु पर यह तुरंत अधिसूचना दिखाता है और टाइमर को रीसेट करता है ।
मेनू खोलने पर टाइमर को आग लगाने के लिए कैसे मजबूर कर सकता हूं? यह एक बड़ा सौदा नहीं है, लेकिन मैं नहीं चाहता कि उपयोगकर्ता सत्र के साथ भ्रमित हो जाए, अगर वे टाइमर नीचे जाते हैं तो बस लटकता है।
यह वह जगह है सही बात। यह मूल रूप से आप हवाई अड्डे के मेनू में क्या देख सकते हैं क्योंकि यह समय-समय पर एसएसआईडी – uchuugaka
के लिए स्कैन करता है विशेष रूप से, रन लूप मेनू ट्रैकिंग के दौरान 'NSEventTrackingRunLoopMode' में चल रहा है। यदि आपका टाइमर केवल 'NSDefaultRunLoopMode' में है, तो यह आग नहीं लगेगा। उन दोनों मोड 'NSRunLoopCommonModes' सेट में हैं, इसलिए उस छद्म-मोड में टाइमर जोड़ना इसे दोनों मामलों (और अन्य) में आग लगने देता है। –
बिल्कुल सही, प्रतिक्रिया और स्पष्ट स्पष्टीकरण के लिए धन्यवाद! –