2015-01-23 11 views
6

मेरे पास एक विंडो है जो मैं चाहता हूं कि उपयोगकर्ता विंडो सामग्री में कहीं भी खींचकर स्थानांतरित करने में सक्षम हों (न कि केवल टाइटलबार)। मुझे पता है कि यह NSWindow movableByWindowBackground विधि के माध्यम से किया जा सकता है, हालांकि यह स्वयं ही काम नहीं करता है।पृष्ठभूमि खींचकर विंडो चलाएं (movableByWindowBackground)

I gatherNSView mouseDownCanMoveWindow ओवरराइडिंग आवश्यक हो सकता है। लेकिन मैं आसानी से सभी मूल विचारों (विभाजन दृश्य, आदि) के लिए ऐसा नहीं कर सकता। इसे एक बनावट खिड़की बनाने में मदद नहीं मिली। अनजाने में, NSWindow को isMovableByWindowBackground ओवरराइड करने के लिए उप-वर्गीकरण, या तो मदद नहीं करता था।

क्या यह काम करने के लिए विंडो में सभी मूल दृश्यों को उप-वर्ग करना वास्तव में आवश्यक है?

+0

इसे आज़माएं: http://stackoverflow.com/questions/4563893/allow-click-and-dragging-a-view-to-drag-the-window-itself –

उत्तर

5

ओएस एक्स 10.11 पर, एनएसविंडो की संपत्ति movableByWindowBackground से YES कार्य करता है।

इस व्यवहार के लिए उप-वर्ग की आवश्यकता नहीं है।

+1

मेरे अनुभव में, ऐसा नहीं है। मेरे पास एक NSSplitView है जो एक विंडो को कवर करता है और मैंने उस प्रॉपर्टी को सेट किया है। खिड़की पृष्ठभूमि क्षेत्रों से खींचने योग्य नहीं है। मैं 10.11 के खिलाफ निर्माण कर रहा हूं और मेरा परिनियोजन लक्ष्य 10.11+ – Bryan

+0

@ ब्रायन ऐप्पल के साथ 'NSSplitView' के खिलाफ एक बग लॉगिंग करने पर विचार करें; ऐसा लगता है कि अनसुलझा माउस घटनाओं को अपेक्षित रूप से 'NSResponder' श्रृंखला के माध्यम से पारित नहीं किया जा रहा है। –

+1

मैं कहूंगा कि यह सही है। मैं splitView में overrode -mouseDownCanMoveWindow, YES वापस कर दिया, और उस समस्या को हल किया। – Bryan

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