2010-04-24 19 views
11

मैं कस्टम कीबोर्ड पर काम कर रहा हूं और सेटिंग्स में सक्षम होने पर कुंजी के लिए टैप ध्वनि चलाने की आवश्यकता है। ध्वनि को टैप न करें, लेकिन कैसे जांचें कीबोर्ड कुंजीपटल क्लिक सक्षम है? धन्यवाद।आईफोन कीबोर्ड की जांच कैसे करें klick ध्वनि सेटिंग्स में चालू/बंद चालू?

उत्तर

4

, आप के लिए निम्न lcode जोड़ना चाहिए अपने एप्लिकेशन। अन्यथा पहले पढ़ने के बाद, सेटिंग कैश की जाती है, और यदि उपयोगकर्ता सेटिंग्स पर स्विच करता है, तो परिवर्तन करता है और वापस स्विच करता है, हमें कैश किए गए मान को फिर से पढ़ना चाहिए। :)

- (void)applicationWillEnterForeground:(UIApplication *)application { 
CFPreferencesAppSynchronize(CFSTR("/var/mobile/Library/Preferences/com.apple.preferences.sounds")); 

अगर कोई मुझे बताता है कि इस साइट पर टिप्पणी कैसे करें, तो मैं वास्तव में और अधिक सहायक बन जाऊंगा।

+0

निराशाजनक रूप से, यह आईओएस 6.0.1 पर काम नहीं कर रहा है। मेरा ऐप उस सेटिंग मान को कैश करना प्रतीत होता है जिसे ऐप पहले लोड होने पर चुना गया था। अगर मैं सेटिंग बदलता हूं और अपने ऐप पर वापस स्विच करता हूं, तो यह समायोजित नहीं होता है। अगर मैं अपने ऐप को छोड़ देता हूं और पुनरारंभ करता हूं, तो बदलाव उठाया जाता है। अब मुझे एक दुविधा है: मेरे कस्टम कीबोर्ड में मुख्य क्लिक प्रदान न करें, या मेरे ऐप को निलंबित होने पर सेटिंग में बदलाव होने वाली बग के साथ लाइव रहें। जो भी बदतर है? –

+0

मैंने 6.1.4 पर चेक किया, मेरा ऐप हमेशा 'बूलियन की एक्स्टिस्ट्स और हासविडाफॉर्मैट = झूठी' से झूठे दोनों झूठे हो जाता है; bool मूल्य = CFPreferencesGetAppBooleanValue ( CFSTR ("कीबोर्ड"), CFSTR ("/ var/मोबाइल/पुस्तकालय/प्राथमिकताएं/com.apple.preferences.sounds"), और keyExistsAndHasValidFormat); 'तो मेरी कोड बहुत पहले ही क्लिक चलाया जाना रुक । तो अगर उपयोगकर्ता शिकायत करते हैं, तो मैं उन्हें सीधे ऐप्पल को निर्देशित करूंगा। हमने लड़ाई खो दी। – Hrissan

17

यह जांचने के लिए कोई दस्तावेज तरीका नहीं है, लेकिन यह संभव है। मुझे नहीं पता कि यह वास्तव में "निजी एपीआई" के रूप में गिना जाता है, इसलिए यदि आप इस विधि का उपयोग करते हैं तो अस्वीकृति के लिए तैयार रहें।

कुंजीपटल क्लिक ध्वनि सेटिंग्स साझा com.apple.preferences.sounds वरीयता में संग्रहीत है। तो तुम

return CFPreferencesGetAppBooleanValue(
     CFSTR("keyboard"), 
     CFSTR("/var/mobile/Library/Preferences/com.apple.preferences.sounds"), 
     NULL); 

(Btw: वास्तविक कॉल "क्लिक" UIKit में ध्वनि [UIHardware _playSystemSound:1104]; है खेलने के लिए) की कोशिश कर सकते आप सही समाधान बनाना चाहते हैं

+3

CFPreferencesGetAppBooleanValue कॉल पूरी तरह से काम करता है, लेकिन UIHardware मेरे लिए (या दस्तावेज़ों में कहीं भी) पहचाना नहीं गया है। इसके बजाए, मैंने ऑडियोटूलकिट फ्रेमवर्क जोड़ा और उसी प्रभाव के लिए 'ऑडियो सर्विसेज प्ले सिस्टम सिस्टम (1104)' कहा। –

+0

@ क्रिस: ऐसा इसलिए है क्योंकि UIHardware एक निजी वर्ग है। – kennytm

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