2011-08-16 10 views
6

चूंकि ओएस एक्स "प्राकृतिक स्क्रॉलिंग" का समर्थन करता है, इसलिए मेरे अनुप्रयोग गलत काम करते हैं। स्क्रॉल पैन के लिए प्राकृतिक स्क्रॉलिंग की जाती है, जिसे मैं वास्तव में पसंद करता हूं। लेकिन, जब मैं ज़ूम इन/आउट करना चाहता हूं, तो यह गलत काम करता है। तो, मैं क्या करना चाहता हूं ओएस एक्स
के लिए स्क्रॉल विधि की जांच करें यदि यह "प्राकृतिक" है तो मैं ज़ूम इन/आउट व्यवहार को सही महसूस करने के लिए MouseWheelEvent.getWheelRotation() से स्क्रॉल मानों के विपरीत ले जाऊंगा।जावा: ओएस एक्स शेर में स्क्रॉलिंग विधि कैसे प्राप्त करें?

तो, संक्षेप में: कैसे पता चलेगा कि ओएस एक्स प्राकृतिक स्क्रॉलिंग का उपयोग करता है या नहीं?

+0

कृपया आप स्पष्ट कर सकते हैं स्क्रॉल पैन के लिए 'गैर-प्राकृतिक स्क्रॉलिंग' क्या है, 'स्क्रॉल करने योग्य यूनीटएक्स'' और 'स्क्रॉल करने योग्य ट्रैक्स एक्सबॉक्स' से अलग-अलग इंट वैल्यू क्या है/किसी अन्य देशी ओएस – mKorbel

+1

ओएस एक्स की तुलना करने के लिए "प्राकृतिक स्क्रॉलिंग" प्रदान करता है। यदि आप इसे सक्षम और स्क्रॉल करते हैं, तो सामग्री आपकी उंगलियों का पालन करेगी। यदि यह सक्षम नहीं है, तो स्क्रॉलबार आपकी उंगलियों का पालन करेंगे, जिससे सामग्री दूसरी दिशा में बढ़ जाती है। –

उत्तर

3

एक समाधान मिला।

सबसे पहले, आपको .plist फ़ाइलों को पढ़ने के लिए लाइब्रेरी की आवश्यकता है। मैंने this one का उपयोग किया।

से आप आसानी से GlobalPreferneces.plist में पढ़ सकते हैं (fseventer जब स्क्रॉल विकल्प बदलते जो फ़ाइल बदल गया है के साथ की जाँच) पता लगाने के लिए स्क्रॉल किस तरह इस तरह सक्षम है:

try { 
    File globalPref = new File(System.getProperty("user.home") + "/Library/Preferences/.GlobalPreferences.plist"); 
    NSDictionary dict = (NSDictionary)PropertyListParser.parse(globalPref); 

    NSNumber pref = (NSNumber)dict.objectForKey("com.apple.swipescrolldirection"); 

    if(pref.boolValue()) { 
     //natural scrolling is enabled 
    } 
} catch (Exception ex) { 
    System.out.println("Faild to parse plist: " + ex.getMessage()); 
} 
+0

वास्तव में यह है। जब मैं सेटिंग संशोधित करता हूं तो मुझे फ़ाइल और मान परिवर्तन मिलते हैं। धन्यवाद! –

1

जैसा कि ऐप्पल ने जावा छोड़ दिया है, मुझे नहीं लगता कि प्राकृतिक स्क्रॉलिंग सक्षम होने पर यह पता लगाने के लिए विधि में बनाया गया है। हालांकि, आप माउस/टचपैड व्यवहार को कॉन्फ़िगर करने के लिए .plist फ़ाइलों में पढ़ सकते हैं (जो एक मूल xml फ़ाइल है) और प्राकृतिक स्क्रॉलिंग को सक्षम करने के लिए संपत्ति को सही या गलत पर सेट करने के लिए देखें।

आप आवश्यक .plist फ़ाइलें यहाँ पा सकते हैं:

उपयोगकर्ता/पुस्तकालय/प्राथमिकताएं/< - यह फ़ोल्डर शेर में छिपा हुआ है!

com.apple.driver.AppleBluetoothMultitouch.mouse.plist

com.apple.driver.AppleHIDMouse.plist

संपादित करें:

आप मानक के साथ एक plist फ़ाइल में नहीं पढ़ सकते हैं जावा फ्रेमवर्क, चूंकि मैक ओएस 10.4 सभी .plists बाइनरी प्रारूप में सहेजे गए हैं। एक सही समाधान के लिए मेरा दूसरा जवाब देखें।

+0

मुझे फ़ोल्डर मिला, लेकिन आपके द्वारा उल्लिखित फाइलें वहां नहीं हैं। –

+0

यह बहुत अजीब है। क्या आपने कभी अपने माउस सेटिंग्स में बदलाव किए हैं? इसके अलावा आपको उपयोगकर्ता को अपने उपयोगकर्ता नाम से बदलना होगा :) –

+0

हां, मैंने बदलाव किए हैं। केवल ऐप्पल द्वारा प्रदान की गई जीयूआई का उपयोग करना। परिवर्तनों के कारण फ़ाइल नहीं चली जानी चाहिए। –

1

जावा-डे मेलिंग सूची पर माइक स्विंगलर के answer पर एक नज़र डालें। इसके बारे में एक पूरा धागा है।

+0

विषय के लिए धन्यवाद, लेकिन मेलिंग सूची में अभी भी कोई जवाब नहीं है। –

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