2012-02-25 12 views
7

मेरे पास एक वैश्विक ऐप है जो वर्तमान टेक्स्टफील्ड के बारे में जानकारी वापस रिपोर्ट करता है। मैं इसे सेट अप किया है ताकि हर बार मैं अपने माउस क्लिक करें, मैं चलाएँ:| एनएसएसस्क्रीन मुख्य स्क्रीन | कीबोर्ड/माउस फोकस अन्य मॉनीटर पर जाने पर अपडेट नहीं हो रहा है?

NSLog(@"Screen:%f,%f", [[NSScreen mainScreen] frame].size.width, [[NSScreen mainScreen] frame].size.height); 

लेकिन जब मैं एक स्क्रीन पर किसी पाठ फ़ील्ड में कीबोर्ड फ़ोकस कर दिया, तो वह एक ही पाठ फ़ील्ड में माउस (बार-बार) पर क्लिक करें, [[NSScreen mainScreen] frame] अक्सर गलत स्क्रीन आयामों की रिपोर्ट करता है! यह मुझे अन्य प्रदर्शन के आयाम देता है।

एप्पल डॉक्स कहते हैं:

https://developer.apple.com/library/mac/#documentation/Cocoa/Reference/ApplicationKit/Classes/NSScreen_Class/Reference/Reference.html

मुख्य स्क्रीन जरूरी एक ही स्क्रीन है कि मेनू पट्टी शामिल है या में अपने मूल है नहीं है (0, 0)। मुख्य स्क्रीन स्क्रीन को संदर्भित करती है जिसमें विंडो वर्तमान में कीबोर्ड ईवेंट प्राप्त कर रही है। यह मुख्य स्क्रीन है क्योंकि यह वह है जिसके साथ उपयोगकर्ता सबसे अधिक संभावना है।

यह कहता है कि कीबोर्ड फोकस वाला स्क्रीन हमेशा मुख्य स्क्रीन है। मैं इसे कीबोर्ड फोकस और माउस फोकस दे रहा हूं। तो मुझे अन्य स्क्रीन 50% समय क्यों मिल रही है?

क्या यह [एनएसएसस्क्रीन मुख्यस्क्रीन] में एक बग है? क्या मुझे किसी तरह एक पुनर्मूल्यांकन मजबूर करना है? क्या डिस्प्ले के आयाम प्राप्त करने का कोई अन्य तरीका है जिसमें कीबोर्ड फोकस है?

उत्तर

6

यह कहता है कि कीबोर्ड फोकस वाला स्क्रीन हमेशा मुख्य स्क्रीन है। मैं इसे कीबोर्ड फोकस और माउस फोकस दे रहा हूं। तो मुझे दूसरी स्क्रीन 50% समय क्यों मिल रही है?

मैं जानता हूँ कि इस निट की पकड़ रही है, लेकिन यह तकनीकी रूप से कहा गया है कि मुख्य स्क्रीन स्क्रीन कि खिड़की कि कुंजी ध्यान केंद्रित किया होता है। तो यदि आपके पास टेक्स्ट फ़ील्ड के साथ दो स्क्रीन फैलाने वाली विंडो है और विंडो की उत्पत्ति स्क्रीन 1 पर है, लेकिन टेक्स्ट फ़ील्ड स्क्रीन 2 पर मौजूद विंडो के हिस्से पर है, और टेक्स्ट फ़ील्ड केंद्रित है, मुख्य स्क्रीन अभी भी स्क्रीन माउस युक्त प्राप्त करने के लिए स्क्रीन 1.

+0

ठीक है, मुझे लगता है कि भी देखा और खिड़की एक बहुत छोटे आकार के लिए नीचे का आकार बदलने और एक स्क्रीन पर पूरी तरह से रख दिया था। अभी भी मुद्दा है। – cksubs

+1

पुष्टि करने के लिए, आप [विंडो स्क्रीन] के परिणाम भी देख सकते हैं। –

+0

क्या आपका मतलब है [WindowIamInteracting स्क्रीन के साथ]? यह एक वैश्विक ऐप है, खिड़की एक अलग ऐप से संबंधित है, इसलिए मुझे नहीं लगता कि मेरे पास यह जानकारी है। अगर आपका मतलब कुछ और है, तो कृपया मुझे बताएं। – cksubs

संबंधित मुद्दे