0
我拖動UITextView
,並與File's Owner
掛鉤委託。
textViewDidChange
僅用默認鍵盤調用,但從鍵盤輸入文本時不會發生任何操作。更改UITextView.inputView時不調用textViewDidChange?
如何在將inputView
設置爲自定義鍵盤時啓用UITextView
的代理?
這裏是我的代碼
ViewController.m
-(void)viewDidLoad{
self.myKeyboard = [[[NSBundle mainBundle] loadNibNamed:@"MyKeyboard" owner:nil options:nil] objectAtIndex:0];
[self.myKeyboard setTextView:self.textView];
}
#pragma mark TestViewDelegate
- (void)textViewDidChange:(UITextView *)textView{
NSLog(@"TextDidChange: %@",textView.text);
}
MyKeyboard.h
@interface MyKeyboard : UIView
@property (weak,nonatomic) id<UITextInput> textView;
-(void)setTextView:(id<UITextInput>)textView;
@end
MyKeyboard.m
-(void)setTextView:(id<UITextInput>)textView{
_textView = textView;
if ([textView isKindOfClass:[UITextView class]])
[(UITextView *)textView setInputView:self];
else if ([textView isKindOfClass:[UITextField class]])
[(UITextField *)textView setInputView:self];
}
我沒有看到委託設置在任何地方。你運行'textView.delegate = self'嗎? – Logan 2014-03-24 14:53:20