テキストフィールドのUITextRangeオブジェクトを使ってUITextFieldの現在のキャレット位置を取得する方法はありますか?任意の用途であってもUITextFieldによってUITextRangeが返されますか? UITextPositionのパブリックインターフェイスには、可視のメンバーはありません。UITextFieldのUITextPosition
15
A
答えて
20
私は昨夜同じ問題に直面していました。 UITextFieldでoffsetFromPositionを使用して、選択した範囲の「開始」の相対位置を取得して位置を計算する必要があることが判明しました。
// Get the selected text range
UITextRange *selectedRange = [self selectedTextRange];
//Calculate the existing position, relative to the beginning of the field
int pos = [self offsetFromPosition:self.beginningOfDocument
toPosition:selectedRange.start];
テキストフィールドを変更した後、ユーザーの位置を復元するために簡単だったように私はendOfDocumentを使用して終了。私はUITextFieldの上のカテゴリを使用して(ちょうどuitextviewクラスに実装された方法のように)setSelectedRangeとselectedRangeを実装
http://neofight.wordpress.com/2012/04/01/finding-the-cursor-position-in-a-uitextfield/
12
:私はここにいることに掲示ブログを書きました。 B2Cloud hereの例を以下に示します。
@interface UITextField (Selection)
- (NSRange) selectedRange;
- (void) setSelectedRange:(NSRange) range;
@end
@implementation UITextField (Selection)
- (NSRange) selectedRange
{
UITextPosition* beginning = self.beginningOfDocument;
UITextRange* selectedRange = self.selectedTextRange;
UITextPosition* selectionStart = selectedRange.start;
UITextPosition* selectionEnd = selectedRange.end;
const NSInteger location = [self offsetFromPosition:beginning toPosition:selectionStart];
const NSInteger length = [self offsetFromPosition:selectionStart toPosition:selectionEnd];
return NSMakeRange(location, length);
}
- (void) setSelectedRange:(NSRange) range
{
UITextPosition* beginning = self.beginningOfDocument;
UITextPosition* startPosition = [self positionFromPosition:beginning offset:range.location];
UITextPosition* endPosition = [self positionFromPosition:beginning offset:range.location + range.length];
UITextRange* selectionRange = [self textRangeFromPosition:startPosition toPosition:endPosition];
[self setSelectedTextRange:selectionRange];
}
@end
+0
ありがとうございます。あなたのコードは、 'UITextPosition'を' UITextView'でどのように使うことができるかを理解する助けとなりました。 – derpoliuk
関連する問題
- 1. UITextField内のUITextField?
- 2. XCodeのUITextFieldの
- 3. UITextFieldの削除
- 4. UITextfieldのキャンセルボタン
- 5. UITableView内のUITextField
- 6. UITextFieldの例(Cocos2d)
- 7. uitableviewのUitextfield
- 8. UITableViewCellのUITextField
- 9. カスタムセルのUITextfieldフォーカス
- 10. iOS CustomKeyboardのUITextField
- 11. UITableViewCellのUITextField
- 12. UITextFieldDelegateはUITextFieldの
- 13. UITextFieldのタッチイベントrightView
- 14. UITextFieldの高さ
- 15. UITextFieldの問題
- 16. UITextFieldのテキスト
- 17. UITableViewCellのUITextField
- 18. UITextFieldのバインド
- 19. uitextfieldのカスタムボーダー
- 20. センターUITextFieldの
- 21. UITextField:ボトムボーダー
- 22. カスタムUITextField
- 23. UiTextfieldボトムボーダー
- 24. UITextField focus
- 25. のiOS - UITextFieldのは
- 26. UITableViewCellのUITextFieldの幅
- 27. UITextFieldのbecomeFirstReponderが偽
- 28. UITextFieldの変更キーボード
- 29. キーボードオーバーラップSwift 4のUITextField
- 30. UITextFieldの代理メソッド
あなたのリンクが疑わしいマルウェアサイトを指しています。それを確認してください –