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 委托上被调用?

UITextView 委托问题

iOS UITextView 委托

iOS - 无法访问 UITableViewCell 类中的 UITextView 委托

TextField和TextView

IOS textView获取光标定位,以及选中