Có cách nào để tôi nhận được vị trí hiện tại của UITextField thông qua đối tượng UITextRange của trường văn bản không? UITextRange có được trả về bởi UITextField ngay cả khi sử dụng không? Giao diện công khai cho UITextPosition không có bất kỳ thành viên hiển thị nào.UITextPosition trong UITextField
Trả lời
Tôi đã gặp phải vấn đề tương tự tối qua. Nó chỉ ra bạn phải sử dụng offsetFromPosition trên UITextField để có được vị trí tương đối của "bắt đầu" của phạm vi được lựa chọn để làm việc ra vị trí.
ví dụ:
// 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];
tôi đã kết thúc bằng cách sử dụng endOfDocument như nó đã được dễ dàng hơn để khôi phục lại vị trí của người dùng sau khi thay đổi lĩnh vực văn bản. Tôi đã viết một bài viết trên blog rằng ở đây:
http://neofight.wordpress.com/2012/04/01/finding-the-cursor-position-in-a-uitextfield/
tôi đã sử dụng một loại trên UITextField và thực hiện setSelectedRange và selectedRange (giống như các phương pháp thực hiện trong lớp uitextview). Một ví dụ được tìm thấy trên B2Cloud here, với mã của chúng bên dưới:
@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
Cảm ơn bạn. Mã của bạn đã giúp tôi tìm ra cách tôi có thể sử dụng 'UITextPosition' với' UITextView'. – derpoliuk
- 1. Ngăn người dùng đặt vị trí con trỏ trên UITextField
- 2. lõm trong UITextField
- 3. UITextField trong UITableViewCell Trợ giúp
- 4. EXC_BAD_ACCESS trong UITextField khi gõ
- 5. UITextField setVisible?
- 6. UITextField leftView
- 7. Thêm nhãn vào UITextField
- 8. Các sự kiện UiTextField
- 9. Cách chọn UITextField?
- 10. Viết hoa của UITextField
- 11. Ví dụ về UITextField trong Cocos2d
- 12. Vô hiệu hóa kính lúp trong UITextField
- 13. Phát hiện backspace trong UITextField đúng cách
- 14. Tắt con trỏ nhấp nháy trong UITextField?
- 15. Nhận văn bản hợp pháp trong UITextField
- 16. Thay đổi UITextField BorderStyle trong didEndEditing
- 17. Đặt tiêu điểm thành UITextField trong tableCell
- 18. Xác thực địa chỉ email trong UITextField
- 19. Văn bản mờ UITextField
- 20. Màu đường viền UITextField
- 21. UITextField clearButtonMode color
- 22. Thêm UITextField để UIToolbar
- 23. Mục tiêu C cách lấy giá trị số của một UITextPosition
- 24. Bàn phím UITableViewController và UITextField
- 25. Cách thêm UILongPressGestureRecognizer vào UITextField?
- 26. Cách viết Custom UItextField Class
- 27. UITextField rightView "WhileEditing" Vấn đề
- 28. Validate địa chỉ email trong UITextField trong iphone
- 29. thay đổi ký tự bảo mật trong UITextfield
- 30. vấn đề rộng trong một UITextField với rightView tùy chỉnh
liên kết trỏ đến trang web phần mềm độc hại đáng ngờ. Hãy kiểm tra xem nó ra –