更新:
ユーザーがとにかく署名にカーソルを置くことができるようにしたいが、タイプは許可しないようにし
たいようです。その場合は、代わりにこれを使用します。
- (BOOL)textView:(UITextView *)textView shouldChangeTextInRange:(NSRange)range replacementText:(NSString *)text{
NSInteger signatureLength=20;
if(range.location>self.textView.text.length-signatureLength){
return false;
}
else{
return true;
}
}
オリジナル:
UITextViewDelegateを使用する必要があります
-(void)textViewDidChangeSelection:(UITextView *)textViewメソッドを実装します。次のようになります。
この例では、署名の長さが20であると仮定します。これは、次のようになります。
-(void)textViewDidChangeSelection:(UITextView *)textView{
NSInteger signatureLength=20;
NSRange newSelection=self.textView.selectedRange;
if(newSelection.location>self.textView.text.length-signatureLength){
[self.textView setSelectedRange:NSMakeRange(self.textView.text.length-signatureLength, 0)];
}
}
したがって、基本的には、選択範囲(この場合はカーソル)が変更されるたびにインターセプトし、カーソルが署名の中央にある場合は、直前に位置を変更します。長さが0の選択範囲を設定すると、カーソル位置が変わるだけです。