Metin alanının UITextRange nesnesi aracılığıyla UITextField'ın geçerli düzeltme işaretine ulaşmamın bir yolu var mı? UITextRange, UITextField tarafından herhangi bir kullanımda bile mi geri döndü? UITextPosition için genel arayüzde görünür bir üye yok.UITextField içinde UITextPosition
cevap
Dün gece aynı sorunla karşılaşıyordum. Bu, pozisyonu belirlemek için seçilen aralığın "başlangıç" sı rölatif konumunu elde etmek için UITextField üzerinde offsetFromPosition kullanmanız gerektiği ortaya çıkıyor.
örn. o metin alanını değiştirdikten sonra kullanıcının konumunu geri kolaydı olarak
// 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];
Ben endOfDocument kullanarak sona erdi. Ben burada bir blog ilanı yazdı:
http://neofight.wordpress.com/2012/04/01/finding-the-cursor-position-in-a-uitextfield/
Ben UITextField bir kategori kullanılmış ve setSelectedRange ve selectedRange (sadece UITextView sınıfında uygulanan yöntemlerin gibi) uygulamaya koydu. B2Cloud here'da, aşağıdaki kodları ile bir örnek bulunur:
@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
Teşekkür ederiz. Kodunuz "UITextView" ile "UITextPosition" ı nasıl kullanabileceğimi anlamamda bana yardımcı oldu. – derpoliuk
- 1. uitextfield positionFromPosition: offset çalışmıyor emojis
- 2. IOS: UIScrollView içinde UITextField + UITableView
- 3. UiTextField
- 4. UITextField
- 5. Bir UITextViewCell içinde bir UITextField yuva nasıl?
- 6. UiTextField olayları
- 7. UITextField çoklu çizgiler
- 8. iOS UITextField
- 9. UITextField metin
- 10. UITextField inputView,
- 11. UITextField odaklama
- 12. UITextField temel konumunu hesaplayın
- 13. Monotek ile UITextField ResignFirstResponder Örneği
- 14. Bir UITextView veya UITextField
- 15. UITextview neden UITextField
- 16. Özel UITextField Otomatik Tamamlama
- 17. UITableViewController ve UITextField klavye
- 18. UITextField yapıştırarak alınma
- 19. UITextField Tüm karakterleri gizle
- 20. iPhone: Bir UITextField
- 21. UITextField sınırı nasıl gizlenir?
- 22. UITextField boşaldığında nasıl algılanır?
- 23. UITextField okumayan değerleri
- 24. UITextField vs UISearchBar?
- 25. UITextField bu şekilde nasıl özelleştirilir?
- 26. UITextField autocapitalizationType UITextAutocapitalizationTypeAllCharacters aygıtta çalışmıyor
- 27. UITextField InputView, bitmiş bir düğmeye
- 28. Sol hareketleri UITextField üzerinden kaydırın
- 29. UiTextField küçük harfli ilk harf
- 30. UITextField kopyalanabilir ancak düzenlenemez Swift
Bağlantı noktanız şüpheli bir kötü amaçlı yazılım sitesine. Lütfen kontrol edin –