子类UITextField
如下。
@interface WJTextField : UITextField
@end
@protocol WJTextFieldDelegate <UITextFieldDelegate>
- (void) textFieldDidChangeSelection: (UITextField *) textField;
@end
实现:
@implementation WJTextField
- (void) setSelectedTextRange: (UITextRange *) selectedTextRange
{
[super setSelectedTextRange: selectedTextRange];
if ([self.delegate respondsToSelector: @selector(textFieldDidChangeSelection:)])
[(id <WJTextFieldDelegate>) self.delegate textFieldDidChangeSelection: self];
}
@end
然后加入-textFieldDidChangeSelection:
到文本字段的委托。
警告:此委托消息将只发送当光标移动时,它会不打字或粘贴文本时,发送对于那些你必须实现textField:shouldChangeCharactersInRange:replacementString:
,其中选择范围将事件或者设为range.location + [string length]
(如果您返回YES
)或保持不变(如果返回NO
)。
我只想提一提,在键入或粘贴文本时确实会触发。至少在iOS8中,我没有检查其他东西。 – philipp 2015-02-10 09:59:29