用户长按textField会出现一个menu(UIMenuController),menuItem包括select和selectAll,选择select或selectAll会自动选中某些文字。内部实现其实非常简单,只需重写这两个函数即可:

-(void)select:(id)sender;-(void)selectAll:(id)sender

代码实现如下:

-(void)selectAll:(id)sender{UITextPosition*beginingOfDoc=self.beginningOfDocument;UITextPosition*startPos=[selfpositionFromPosition:beginingOfDocoffset:0];UITextPosition*endPos=[selfpositionFromPosition:beginingOfDocoffset:self.text.length];UITextRange*selectionRange=[selftextRangeFromPosition:startPostoPosition:endPos];[selfsetSelectedTextRange:selectionRange];}

说明:textField设置选中文字是通过设置其selectedTextRange属性来实现的,因此这里使用setSelectedTextRange函数来选中textField的所有文本。此外,如果接下来要将选中的文本执行copy操作,唯一的办法就是根据选中文本的range(self.selectedTextRange)来将对应的文本放入黏贴板,而没有所谓的selectedText属性可以使用。