2014-02-12 49 views
1

好吧,我已經窮盡谷歌和本網站尋找答案,找不到一個。我目前有一個UITextView(postMessage),它的鍵盤不會消失。我已經嘗試了所有可能的代碼組合,以使其解散,但它根本不會。UITextView不辭職

我試圖做使用UIToolBar與UIBarButton

-(IBAction)done:(id)sender { 
[self keyboardIsHidden]; 
[[self view] endEditing: YES]; 
[self.postMessage becomeFirstResponder]; 
[self.topLayer endEditing:YES]; 
[self.view endEditing:YES]; 
[self.collectionView endEditing:YES]; 
//[self.postMessage.editable = NO]; 
[self.postMessage resignFirstResponder]; 

keyboardBar.hidden = YES; 
NSLog(@"done"); 
} 

並沒有什麼返回鍵方法

- (BOOL) textView:(UITextView *)textView shouldChangeTextInRange:(NSRange)range replacementText:(NSString *)text { 
if([text isEqualToString:@"\n"]){ 
    //MainViewController *mvc = [[MainViewController alloc] init]; 
    //[mvc.view endEditing:YES]; 
    //[[self view] endEditing: YES]; 
    //[self.postMessage becomeFirstResponder]; 
    //[self.topLayer endEditing:YES]; 
    //[self.view endEditing:YES]; 
    //[self.collectionView endEditing:YES]; 
    //[self.postMessage.editable = NO]; 
    //[postMessage resignFirstResponder]; 
    [self.postMessage resignFirstResponder]; 
    return NO; 
}else{ 
    return YES; 
} 
} 

我也試過.....我已經使用NSLogs確保這兩種方法都被調用,但鍵盤不會辭職。我也使用和if語句來檢查以確保UITextView(postMessage)是firstResponder,它是。

在我的項目中,我有2個視圖(不是視圖控制器)底層視圖和頂層。用戶將頂層拉入視圖。我也有一個UICollectionView。

我注意到,當我按下鍵盤上的返回鍵或UIToolBar上的'完成'鍵時,UICollectionView重新加載數據。

我確實在.h上設置了UITextViewDelegate。 我也有我的ViewDidLoad postMessage.delegate = self

謝謝! -Mike

+1

確保您已經設置委託給TextView的 – Rajjjjjj

+0

檢查委託設置爲textview&如果您使用IB,然後檢查插座連接。 – OMK

+0

你在ViewDidLoad方法中設置了委託嗎? – GenieWanted

回答

1
-(BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string 
{ 

    if([string isEqualToString:@"\n"]) { 
     [textField resignFirstResponder]; 
     return NO; 
    } 

    return YES; 
} 

我使用這項工作很好

0

你可以使用這個樣子。

- (BOOL)textView:(UITextView *)textView shouldChangeTextInRange:(NSRange)range 
replacementText:(NSString *)text 
{ 

if ([text isEqualToString:@"\n"]) { 

    [textView resignFirstResponder]; 
    // Return FALSE so that the final '\n' character doesn't get added 
    return NO; 
} 
// For any other character return TRUE so that the text gets added to the view 
return YES; 
} 

或創建一個按鈕..

-(IBAction)btnclicked{ 

[txtvw resignFirstResponder]; 
} 
+0

我已經試過了。不過謝謝。 – MBarton

0

附上您的文本字段代表與文件所有者,乾淨的構建和運行項目

+0

我已經這樣做了,沒有運氣。 – MBarton