用戶長按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 = [self positionFromPosition:beginingOfDoc offset:0]; UITextPosition *endPos = [self positionFromPosition:beginingOfDoc offset:self.text.length]; UITextRange *selectionRange= [self textRangeFromPosition:startPos toPosition:endPos]; [self setSelectedTextRange:selectionRange]; }
說明:textField設置選中文字是通過設置其selectedTextRange屬性來實現的,因此這裏使用setSelectedTextRange函數來選中textField的所有文本。此外,如果接下來要將選中的文本執行copy操作,唯一的辦法就是根據選中文本的range(self.selectedTextRange)來將對應的文本放入黏貼板,而沒有所謂的selectedText屬性可以使用。