所以我有一個UITextView我用來做一個可移動的,可編輯的標籤(我以前的搜索顯示這顯然是最好的選擇)。我需要讓用戶雙擊以啓用編輯並將其設置爲第一響應者。我找不到辦法做到這一點,而我所有的其他搜索都出現了過時的答案或模糊的答案。我試過的東西似乎沒有用。我嘗試使用UITextViewDelegate
開始編輯,而不是使用textViewDidChangeSelection:
選擇文本,但在您更改當前選擇之前它不起作用。我也嘗試使用如下的自定義UITapGestureRecognizer
:UITextView雙擊編輯
UITapGestureRecognizer *doubleTap = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(doubleTap:)];
[doubleTap setNumberOfTapsRequired:2];
[doubleTap setNumberOfTouchesRequired:1];
[newLabel addGestureRecognizer:doubleTap];
-(void)doubleTap:(UITapGestureRecognizer *)sender
{
NSLog(@"Double tap detected");
NSLog(@"Sender view of class %@", [[sender view] class]);
UITextView *tappedView = (UITextView *)[sender view];
[tappedView setEditable:YES];
[tappedView becomeFirstResponder];
// [tappedView setEditable:NO];
}
雙擊手勢從不被調用。我不知道爲什麼。奇怪的是,它也不會選擇文本,但它是這樣的。它似乎只是打破雙擊手勢。有沒有辦法擺脫標準的雙擊選擇手勢,或修改它?我應該繼承UITextView嗎?如果是,我會改變什麼?
你能更詳細一點?我不確定我會怎麼做。 – Rob
我編輯了我的答案。 –
錯誤。這樣做是說該文本字段有一個名爲「doubleTap」的方法除非您將文本字段繼承爲實際具有此方法,否則會遇到無法識別的選擇器實例錯誤 – kevinl