2010-09-03 10 views
6

मैं scrollview स्पर्श घटना पर कुंजीपटल कैसे छिपा कर सकते हैं ...scrollview टच पर प्रथम प्रत्युत्तर पुनः साइन

परिदृश्य ऐसा है ...

-> देखें -> scrollview -> Textfield

मैं scrollView के स्पर्श पर कीबोर्ड को छिपाना चाहता हूं। मैंने स्क्रॉलव्यू के लिए कक्षा को ओवरराइड करने की कोशिश की लेकिन फिर भी मैं इसे नहीं कर सकता।

+0

मैं आप एक प्रतिनिधि के उपयोग करने की आवश्यकता में सोचना चाहिए। – mk12

+0

अभी भी कोई इसे हल करने में मेरी मदद कर सकता है ??? –

उत्तर

8

इस तरह करने से मदद मिलेगी:

- (BOOL)touchesShouldBegin:(NSSet *)touches withEvent:(UIEvent *)event inContentView:(UIView *)view { 

} 

अधिक UIScrollView touch

के बारे में:

@interface MyClass <UIScrollViewDelegate> { 
} 

@implementation 

- (void)viewDidLoad { 
    yourScrollView.delegate = self; 
} 

- (void)scrollViewWillBeginDragging:(UIScrollView *)scrollView { 
    [myTextField resignFirstResponder]; 
} 

तुम सच में स्पर्श घटना को संभालने के लिए चाहते हैं, तो आप UIScrollView उपवर्ग और विधि ओवरराइड करने के लिए की जरूरत है

+0

मुझे स्क्रॉलव्यू खींचने पर नहीं पर कुंजीबॉर्ड छुपाएं बनाने की ज़रूरत है ... तो क्या कोई है जो इस के साथ मेरी मदद कर सकता है !!!! –

+0

लेकिन जब उपयोगकर्ता खींचते हैं, तो उन्हें स्पर्श करना पड़ता है, क्या यह सही है – vodkhang

+0

मैंने टच इवेंट – vodkhang

4

इसे आजमाएं:

जेस्चररेको जोड़ें स्क्रॉलव्यू के लिए gnizer,

UITapGestureRecognizer *tapScroll = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(tapped)]; 
    tapScroll.cancelsTouchesInView = NO; 
    [yourScrollview addGestureRecognizer:tapScroll]; 
    [tapScroll release]; 

अपने कीबोर्ड को (टैप किए गए :) विधि में इस्तीफा दें।

6

यह वही अपने ViewController के viewDidLoad-विधि

UITapGestureRecognizer *tapScroll = [[UITapGestureRecognizer alloc]initWithTarget:self action:@selector(tapped)]; 
    tapScroll.cancelsTouchesInView = NO; 
    [viewScroller addGestureRecognizer:tapScroll]; 

जहां viewScroller अपने स्क्रोलर है में मेरे लिए काम किया

है। टैप-विधि में हम

- (void) tapped { 
     [self.view endEditing:YES]; 
    } 

क्यों, लेकिन इसके बाद के संस्करण मेरे लिए काम नहीं किया पता नहीं है ... भले ही यह

+0

हां, आईओएसएसडीके में जेस्चर होने के बाद यह एक अच्छा समाधान है जैसा कि @ डैक्स द्वारा उत्तर दिया गया है। लेकिन इस सवाल से लंबे समय से पूछा गया था जहां कोई इशारा नहीं था। लेकिन मेरे पक्ष से +1। –

0
- (BOOL)touchesShouldBegin:(NSSet *)touches withEvent:(UIEvent *)event inContentView:(UIView *)view 
{ 
    [self.view endEditing:YES]; 
    return YES; 
}