2011-09-10 49 views
6

我想在寫入新文本之前清除寫在UITextView上的以前的文本。 我的確如此。如何在寫入文本之前清除UITextView中的前一個文本?

textView.text = @""; 
textView.text = @"something"; 

但是,以前的文本沒有被清除。它與當前文本重疊。 Textview是不可編輯的。

+0

添加NSLog(@「Text Field Content:%@」,textField.text);第一行之後,輸出是什麼?您是以編程方式創建textField還是使用「界面」構建器? – 0x8badf00d

+0

對不起。它是textView,而不是textField。我編輯過。我以編程方式創建了textview。 – user698200

回答

9

您需要實現UITextViewDelegate和方法textViewDidBeginEditing。以下代碼在開始編輯時將textView的文本設置爲@""(無)。

- (void) textViewDidBeginEditing:(UITextView *) textView { 
    [textView setText:@""]; 
} 
+0

未調用textViewDidBeginEditing。 TextView在ViewController中。我把textView放在root viewController中,它被調用。但是,我的viewController是推送viewController,它不叫。 – user698200

+0

將'textView.delegate'設置爲'self'。 –

2

設置所選範圍到的TextView的整個文本第一:

[textView setSelectedRange:NSMakeRange(0, textView.text.length)]; 
    [textView setText:@""]; 

如:

- (BOOL)textViewShouldBeginEditing:(UITextView *)textView { 
    // Make the textView visible in-case the keyboard has covered it 
    [table scrollToRowAtIndexPath:[NSIndexPath indexPathForRow:0 inSection:1] 
       atScrollPosition:UITableViewScrollPositionTop 
         animated:YES]; 

    // Keyboard toolbar prev/next buttons 
    [nextPreviousControl setEnabled:YES forSegmentAtIndex:0]; 
    [nextPreviousControl setEnabled:NO forSegmentAtIndex:1]; 

    // 
    // Erase all text in the textView before editing starts: 
    // 
    [textView setSelectedRange:NSMakeRange(0, textView.text.length)]; 
    [textView setText:@""]; 
    return YES; 
} 
+0

textViewShoulBeginEditing沒有被調用。 TextView在ViewController中。我把textView放在root viewController中,它被調用。但是,我的viewController是推送viewController,它不叫。 – user698200

+0

把這個放在''viewController''中,它在viewDidLoad方法中有'UITextView':'[textView setDelegate:self];'。 – chown

+0

並且在你的'ViewController'的頭文件中添加這個''像這樣 - >'@interface MyViewController:UIViewController {' – chown

1

這裏是迅速

func textViewDidBeginEditing(textView: UITextView) { 
     txtView.text = "" 
     txtView.textColor = UIColor.blackColor() 
    } 

func textViewDidEndEditing(textView: UITextView) { 
    if txtView.text.isEmpty { 
     txtView.text = "Write your comment." 
     txtView.textColor = UIColor.blackColor() 
    } 
} 

func textView(textView: UITextView, shouldChangeTextInRange range: NSRange, replacementText text: String) -> Bool { 
     if text == "\n" // Recognizes enter key in keyboard 
     { 
      textView.resignFirstResponder() 
      return false 
     } 
     return true 
    } 
一個代碼

注意:給代表你的文本視圖

相關問題