A method for positioning a cursor, including: at an electronic device having one or more processors, memory, and a touch-sensitive display: concurrently displaying an onscreen keyboard and a content presentation region on the touch-sensitive display, wherein the content presentation region displays text input received from the onscreen keyboard; detecting a touch input on the onscreen keyboard displayed on the touch-sensitive display; in response to detecting the touch input on the onscreen keyboard displayed on the touch-sensitive display, determining whether the touch input satisfies one or more criteria for entering a text selection mode; and in accordance with a determination that the touch input satisfies the one or more criteria for entering the text selection mode: changing an appearance of the onscreen keyboard which becomes not responsive to keystroke input; concurrently displaying, in the content presentation region, a first cursor at a first location and a second cursor at a second location that is different from the first location: detecting movement of one or more contacts of the touch input; moving the second cursor within the content presentation region in accordance with the movement of the one or more contacts of the touch input while in the text selection mode; and moving the first cursor based on the movement of the second cursor to a permitted insertion position in the content presentation region, the first cursor indicating where a cursor will be located after the touch input ends. concurrently displaying an onscreen keyboard and a content presentation region on the touch-sensitive display, wherein the content presentation region displays text input received from the onscreen keyboard; detecting a touch input on the onscreen keyboard displayed on the touch-sensitive display; in response to detecting the touch input on the onscreen keyboard displayed on the touch-sensitive display, determining whether the touch input satisfies one or more criteria for entering a text selection mode; and in accordance with a determination that the touch input satisfies the one or more criteria for entering the text selection mode: changing an appearance of the onscreen keyboard which becomes not responsive to keystroke input; concurrently displaying, in the content presentation region, a first cursor at a first location and a second cursor at a second location that is different from the first location: detecting movement of one or more contacts of the touch input; moving the second cursor within the content presentation region in accordance with the movement of the one or more contacts of the touch input while in the text selection mode; and moving the first cursor based on the movement of the second cursor to a permitted insertion position in the content presentation region, the first cursor indicating where a cursor will be located after the touch input ends. changing an appearance of the onscreen keyboard which becomes not responsive to keystroke input; concurrently displaying, in the content presentation region, a first cursor at a first location and a second cursor at a second location that is different from the first location: detecting movement of one or more contacts of the touch input; moving the second cursor within the content presentation region in accordance with the movement of the one or more contacts of the touch input while in the text selection mode; and moving the first cursor based on the movement of the second cursor to a permitted insertion position in the content presentation region, the first cursor indicating where a cursor will be located after the touch input ends. detecting movement of one or more contacts of the touch input; moving the second cursor within the content presentation region in accordance with the movement of the one or more contacts of the touch input while in the text selection mode; and moving the first cursor based on the movement of the second cursor to a permitted insertion position in the content presentation region, the first cursor indicating where a cursor will be located after the touch input ends.