IOS textView 委托
Posted
技术标签:
【中文标题】IOS textView 委托【英文标题】:IOS textView delegate 【发布时间】:2015-11-25 07:21:22 【问题描述】:我创建了一个 UITextView *mytextview
。我想在UIKeyboardWillShowNotification
委托之前点击textview时得到事件。
现在,当我单击 textview 时,会调用 UIKeyboardWillShowNotification
。之后就叫- (void)textViewDidBeginEditing:(UITextView *)textView
,不好了!
我想在调用UIKeyboardWillShowNotification
之前调用mytextview delegate
我该如何解决这个问题
【问题讨论】:
使用- (BOOL)textViewShouldBeginEditing:(UITextView *)textView
【参考方案1】:
使用UITextViewDelegate
提供的textViewShouldBeginEditing
,在其中调用你的委托方法,并从该方法返回YES
,让用户编辑文本。
- (BOOL)textViewShouldBeginEditing:(UITextView *)textView
[yourDelegate yourMethod:textView];
return YES;
【讨论】:
【参考方案2】:Event执行的顺序是
-
UIKeyboardWillShowNotification
textViewDidBeginEditing
现在根据我们的要求,我在 KeyBoardWillShow 时调用的通知上触发。
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(textViewDidBeginEditing:)name:UIKeyboardWillShowNotification object:nil]
在选择器中,我传递了在 UIKeyBoardWillShown 之后调用的相同函数,您也可以设置自己的函数,您想要在 UIKeyBoardShow 之前执行该函数
这是我的代码
- (void)viewDidLoad
[super viewDidLoad];
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(textViewDidBeginEditing:) name:UIKeyboardWillShowNotification object:nil];
- (void)textViewDidBeginEditing:(UITextView *)textView
NSLog(@"textViewDidBeginEditing");
【讨论】:
以上是关于IOS textView 委托的主要内容,如果未能解决你的问题,请参考以下文章
为啥 textView:shouldInteractWithTextAttachment:inRange: 永远不会在 UITextView 委托上被调用?