कोको में, जब हम एक दृश्य को फिर से तैयार करना चाहते हैं, तो हम दृश्य को setNeedsDisplay:
संदेश भेज देंगे जो दृश्य को YES के पैरामीटर के साथ खुद को फिर से चलाने के लिए कह रहा है। मैं सोच रहा था कि क्या ऐसी परिस्थितियां हैं जहां आप setNeedsDisplay:NO
, जैसे मल्टीथ्रेडिंग वातावरण, और setNeedsDisplay:YES
पर एक दृश्य भेजना चाहते हैं, तो setNeedsDisplay:NO
के साथ तुरंत इसे फिर से सेट करना दृश्य को फिर से तैयार कर देगा। अगर setNeedsDisplay:NO
पर कॉल करने के कोई कारण नहीं हैं, तो इस तरह की एक कठिन विधि क्यों बनाएं, जहां वे [view redrawView]
सेट नेड्स डिस्प्ले: कोई भी उपयोग नहीं है?
उत्तर
setNeedsDisplay:NO
यदि आप पहले setNeedsDisplay:YES
नामक त्यागना चाहते हैं तो इसका उपयोग किया जा सकता है। जैसे कभी-कभी सभी सबव्यूज़ को डिस्प्ले की आवश्यकता के रूप में चिह्नित करना आसान होता है और फिर उनमें से कुछ को अनमार्क करने के लिए एल्गोरिदम चलाया जाता है।
जैसे कुछ को लागू कर सकते हैं जैसा कि आप शायद जानते हैं, सामान्य घटना के माध्यम से प्रत्येक पास प्रत्येक पर प्रदर्शन अपडेट स्वचालित (यदि आवश्यक हो) पाश। यदि आवश्यक हो तो डिस्प्ले अपडेट को मजबूर करने के लिए आप setNeedsDisplay:
पर कॉल करें।
NSView
के प्रलेखन से:
चर्चा
जब भी डेटा या राज्य के लिए एक दृश्य वस्तु परिवर्तन ड्राइंग के लिए इस्तेमाल किया, दृश्य एक setNeedsDisplay भेजा जाना चाहिए: संदेश। प्रदर्शन की आवश्यकता के रूप में चिह्नित NSView ऑब्जेक्ट्स को एप्लिकेशन के इवेंट लूप के माध्यम से प्रत्येक पास प्रत्येक बार स्वचालित रूप से फिर से चलाया जाता है। (वस्तुओं देखें पुन: प्रदर्शित करने की आवश्यकता है कि इससे पहले कि घटना पाश के आसपास आता है निश्चित रूप से तुरंत उचित प्रदर्शन भेजा जा सकता है ... विधि।)
इस समारोह के लिए बूलियन पैरामीटर बस को निर्दिष्ट करती है
पूरे सीमा की प्रश्न में दृश्य प्रभावित होता है या नहीं, अगर कुछ संपत्ति "जरूरतों को प्रदर्शित करने" को सही या गलत पर सेट किया गया है। इस प्रकार,
setNeedsDisplay:
वास्तव में अतिरिक्त पैरामीटर के साथ "redrawView" की तरह बहुत अधिक काम करता है।
संपादित
ऊपर एक ही दस्तावेज़ से प्रेरित था:
झंडा
हाँ, तो प्रदर्शन की आवश्यकता होगी, के रूप में रिसीवर के पूरे सीमा के निशान; यदि नहीं, तो इसे प्रदर्शित करने की आवश्यकता के रूप में चिह्नित नहीं है।
- 1. स्टाइल = 'डिस्प्ले: कोई भी'
- 2. सीएसएस डिस्प्ले: कोई भी और दृश्यता: छुपा
- 3. jquery एनिमेट बनाम बनाम डिस्प्ले: कोई भी
- 4. डिस्प्ले के अंदर फॉर्म फ़ील्ड जमा करें: कोई भी तत्व
- 5. क्या डिस्प्ले() विधि कुछ भी करती है?
- 6. CSS3 एनीमेशन और डिस्प्ले कोई नहीं
- 7. capybara: page.should have_no_content डिस्प्ले के लिए सही तरीके से काम नहीं करता है: कोई भी तत्व
- 8. स्प्रिंग एलडीएपी अपवाद - कोई उपयोगकर्ता डिस्प्ले सेवा पंजीकृत नहीं है
- 9. (jQuery) div शैली "डिस्प्ले: किसी भी" को "डिस्प्ले: इनलाइन"
- 10. "कोई भी नहीं" बनाम "कोई नहीं"
- 11. कोई भी मूल्य नहीं
- 12. फ्लेक्स में सीएसएस "डिस्प्ले: कोई नहीं" के बराबर क्या है?
- 13. जेसीआई तत्वों को फ़िल्टर करें जिनमें सीएसएस स्टाइल डिस्प्ले है: कोई भी
- 14. प्रदर्शन करता है: कोई नहीं अभी भी
- 15. डिस्प्ले एट्रिब्यूट: App_GlobalResources में संसाधनों के लिए कोई अच्छा नहीं
- 16. डिस्प्ले के साथ एक div में कैनवास कोई भी काम नहीं करता
- 17. जावा सेट के लिए 'कोई भी शामिल है' जैसे कुछ?
- 18. कोई भी पूर्ण ग्रहण त्वचा उपलब्ध है?
- 19. खोज डिस्प्ले नियंत्रक: "कोई परिणाम नहीं" लेबल बदलें
- 20. क्या प्रदर्शन वाला तत्व है: सीएसएस में कोई भी सेट अभी भी ब्राउज़र द्वारा डाउनलोड नहीं किया जाता है?
- 21. कोई भी INotifyPropertyChanging का उपयोग क्यों नहीं करता?
- 22. setLoopBack के साथ कोई भी mic गतिविधि गलत पर सेट नहीं है - AS3
- 23. प्रभाव = ड्रैगड्रॉपफ्रैक्ट्स सेट होने पर भी ड्रॉप अनुमति क्यों है? कोई सेट है?
- 24. कोई भी सेट न करें अगर numpy सरणी अनुक्रमणिका मौजूद नहीं है
- 25. iCloud प्रदर्शन सेट का उपयोग क्या है?
- 26. (कोई भी == System.DBNull.Value) बनाम (कोई भी सिस्टम है। डीबीएनयूएल)
- 27. सूची है :: MoreUtils :: कोई भी छोटी गाड़ी नहीं?
- 28. कोई भी तर्क उठाने के लिए उचित अपवाद नहीं है यदि कोई भी तर्क
- 29. कोई भी पुन: प्रयोज्य स्निपेट नहीं?
- 30. फ़ायरबग रोक रहा है, जहां कोई ब्रेकपॉइंट सेट नहीं है
यह काफी हद तक गलत है। इवेंट लूप जांचता है कि 'सेटडिड्स डिस्प्ले' द्वारा निर्धारित अनुसार दृश्य को फिर से खींचा जाना चाहिए, जिसे कहा जाता है (यह वास्तव में ध्वज सेट करता है: '- [NSView ज़रूरतें डिस्प्ले] ')। वह विधि पूरी तरह से तत्काल पुनरावृत्ति का कारण नहीं बनती है, न ही हर दृश्य पर प्रत्येक दृश्य को फिर से खींचा जाता है। आपके द्वारा जबरन मजबूर ड्राइंग व्यवहार '- [NSView डिस्प्ले]' और '- [NSView displayRect:]' द्वारा प्रदान किया गया है। Http://developer.apple.com/library/mac/documentation/Cocoa/Conceptual/CocoaViewsGuide/Optimizing/Optimizing.html#//apple_ref/doc/uid/TP40002978-CH11-112409 –
पर्याप्त मेला देखें। मैंने अपना जवाब संपादित किया और समझाया कि जानकारी कहां से आती है। – Mundi
@ मुंडी दुर्भाग्य से यह मेरे प्रश्न का बिल्कुल जवाब नहीं देता है। मैं पूछ रहा हूं कि 'setNeedsDisplay: NO' के लिए कोई उपयोग है या नहीं। – TheAmateurProgrammer