2017-03-15 15 views
1

私はUITableViewCellUITextView - UITableViewCellの(で選択されたすべてのテキストで編集を開始します)

textViewのサブクラスであるオブジェクトTaskCellでのtableViewを持っているがTaskCellにあり、私はこの行を取得することはできませんを除いてすべてが正常に動作しますテキストビュー内のすべてのテキストを選択して、必要に応じてすぐにテキストを上書きすることができます。テキストのタップを保持した後、「すべて選択」をタップするのとまったく同じです。あなたのケースで

[yourtextView selectAll:nil];  //highlights text 
[yourtextView selectAll:self];  //highlights text and shows menu(cut copy paste) 

、これはそれを解決します:

- (BOOL)textViewDidBeginEditing:(UITextView *)textView { 
    dispatch_async(dispatch_get_main_queue(), ^{ 
    [textView selectAll:nil]; 
    }); 
    return YES; 
} 

スウィフト3.0あなたは2つのオプションがあり

textView.selectedTextRange = textView.textRange(from: textView.beginningOfDocument, to: textView.endOfDocument) 

_

// All code relating to textView 
class TaskCell: UITableViewCell { 

    @IBOutlet weak var textView: UITextView! { didSet { initTextView() } } 

    fileprivate func initTextView() { 
    textView.delegate = self 
    } 
} 

extension TaskCell: UITextViewDelegate { 
    func textViewDidBeginEditing(_ textView: UITextView) { 
    textView.selectedTextRange = textView.textRange(from: textView.beginningOfDocument, to: textView.endOfDocument) 
    } 
} 


// class ListViewController: ViewController, UITableViewDataSource, UITableViewDelegate 
func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell { 
    let cell = tableView.dequeueReusableCell(withIdentifier: "Cell", for: indexPath) as! TaskCell 

    return cell 
} 

答えて

2
func textViewDidBeginEditing(_ textView: UITextView) { 
    DispatchQueue.main.async { 
     textView.selectAll(nil) 
    } 
} 

enter image description here

+0

どちらのオプションが、それは私と一緒に働いていただけで – lifewithelliott

+0

取り組んでいるあなたが https://i.stack.imgur.com/sGdSf.png –

+0

を持っている状況で、それを適用する必要がありますそれがために働きますたとえば、textViewDidChangeで、何かを入力するとすぐにすべてのテキストがハイライト表示されます。 textViewDidBeginEditingではなく – lifewithelliott

関連する問題