GÜNCELLEME:
iOS5 de
ve üzeri UITextField ve UITextView UITextInput protokolüne uygun çünkü bunu yapmak mümkündür. Lütfen buna bir göz atın: "Can I select a specific block of text in a UITextField?" bir örnek için :).
o
ESKİ CEVAP yardımcı olur umarım: (aşağıda iOS4.x ve): (ı bildiğimden değil) bu kullanarak kamu API'leri gerçekleştirmek için bir yolu yoktur
. Ben özel yöntemlerin bir çift bulduk Ancak: (en azından simülatör 4.3) kodu çalışma cezası Aşağıda
selectionRange
setSelectionRange:
(belki belgesiz yöntemler bunlar özel yöntemler genellikle sahip oldukları alt çizgi öneki yok çünkü) ve KVC kullanıyorum, bu yüzden can sıkıcı uyarıları önleyebilirim. Onlar Apple'ın inceleme geçecek eğer bilmiyorum, bu yana
- (void) moveToRight{
NSRange selectedRange = [[self valueForKey:@"selectionRange"] rangeValue];
if (selectedRange.location != NSNotFound) {
if (selectedRange.length > 0) {
selectedRange.location = NSMaxRange(selectedRange);
selectedRange.length = 0;
}else if (selectedRange.location < self.text.length) {
selectedRange.location += 1;
}
[self setValue:[NSValue valueWithRange:selectedRange] forKey:@"selectionRange"];
}
}
- (void) moveToLeft{
NSRange selectedRange = [[self valueForKey:@"selectionRange"] rangeValue];
if (selectedRange.location != NSNotFound) {
if (selectedRange.length > 0) {
selectedRange.length = 0;
}else if (selectedRange.location > 0) {
selectedRange.location -= 1;
}
[self setValue:[NSValue valueWithRange:selectedRange] forKey:@"selectionRange"];
}
}
, kamu API'leri olmayan kendi sorumluluğunuzdadır kullanın (self
UITextField
alt sınıfının bir örneğidir).
BTW:
#import "/usr/include/objc/objc-runtime.h"
unsigned int methodCount = 0;
Method *mlist = class_copyMethodList([UITextField class], &methodCount);
for (int i = 0; i < methodCount; ++i){
NSLog(@"%@", NSStringFromSelector(method_getName(mlist[i])));
}
Çok güzel: Onları kullanarak buldum. Bunu paylaştığın için teşekkürler. – DenVog