UITextView - 使用在 UITableViewCell() 中选择的所有文本开始编辑
UITextView - Begin Editing With All Text Selected In UITableViewCell()
我有一个带有对象 TaskCell
的 tableView,它是 UITableViewCell
的子类
textView
在 TaskCell
中,一切正常,除了我无法将这行代码添加到 select 文本视图中的所有文本,以便用户可以立即覆盖如果他们愿意的话。就像您在按住文本的点击后点击 "select all" 一样。
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
}
您有两个选择:
[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;
}
Swift 3.0
func textViewDidBeginEditing(_ textView: UITextView) {
DispatchQueue.main.async {
textView.selectAll(nil)
}
}
我有一个带有对象 TaskCell
的 tableView,它是 UITableViewCell
textView
在 TaskCell
中,一切正常,除了我无法将这行代码添加到 select 文本视图中的所有文本,以便用户可以立即覆盖如果他们愿意的话。就像您在按住文本的点击后点击 "select all" 一样。
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
}
您有两个选择:
[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;
}
Swift 3.0
func textViewDidBeginEditing(_ textView: UITextView) {
DispatchQueue.main.async {
textView.selectAll(nil)
}
}