2010-03-28 104 views
2

當用戶按下「發送」(返回)按鈕時,我希望鍵盤收回並執行其他操作,例如發送消息。但它只適用於有時...爲什麼這隻有時纔有效? (UITextView resign first responder question)

爲什麼此代碼只能工作有時?我需要它顯而易見地工作,但事實並非如此。

- (void)textViewDidChange:(UITextView *)inTextView { 

    NSString *text = myTextView.text; 

    if ([text length] > 0 && [text characterAtIndex:[text length] -1] == '\n') { 
     myTextView.text = [text substringToIndex:[text length] -1]; 
     [myTextView resignFirstResponder]; 
     [self sendMessage]; 

    } 
} 

回答

1

只被調用,如果

([text length] > 0 && [text characterAtIndex:[text length] -1] == '\n') 

是真實的。情況總是如此嗎?也許在狀態的外部和內部添加一條NSLog語句,看看它是否一直都是真的。

+0

假設myTextView是具有當前焦點的文本區域。 – Jordan 2010-03-29 00:24:54

0

檢查\ n看起來奇怪。爲什麼要這麼做?

0

該方法在一個名爲inTextView的視圖中傳入,但在您引用myTextView的方法內部,並且您沒有提及設置的位置。

我建議您將所有myTextView引用改爲inTextView,並查看是否解決了問題,因爲您可能正在使用除了myTextView以外的UITextView並因此而看到您的問題。

相關問題