5

我在 UITextFieldDelegate 上遇到了问题,任何人都可以帮助我,将不胜感激。有一个 UITextView,我实现了它的委托。通常所有的委托方法都调用得很好。但在这种情况下:

  1. 设置 UITextView 不可编辑。
  2. 长按 UITextView 直到弹出窗口出现(复制,剪切,...)。
  3. 关闭弹出窗口,并将 UITextView 设置为可编辑
  4. 点击 UITextView 使 UITextView 进入编辑模式。
  5. 您会发现未调用委托方法 textViewShouldBeginEditing。

我需要调用 textViewShouldBeginEditing 来处理一些 UI 更改。任何人都知道如何解决它?非常感谢!

测试项目:我创建了一个简单的测试项目,它将 NSLog 方法的调用,您可以快速测试我的案例,谢谢!源代码在这里:http: //goo.gl/tGQS5

4

2 回答 2

7

您是否可能忘记去了:

myTextView.delegate = 自我;

?

额外的信息

在我最近发布的一个应用程序中,我做了类似的事情。

我禁用了 UITextField,因此我可以在 UITableViewSectionHeader 上使用长按手势来编辑节标题的名称,然后单击节标题来选择它。

我不得不说:

// groupName is my UITextField
groupName.userInteractionEnabled = YES;
[groupName becomeFirstResponder];

在我的长按手势识别器回调方法中。

于 2012-07-25T06:49:48.033 回答
0

@Albert Zhang,仅当您的 textview 成为第一响应者时才会调用“textViewShouldBeginEditing”。您可以通过执行以下操作来强制它。

- (IBAction)onSwitch:(id)sender{
    self.textView.editable = self.editableSwitch.on;

    if(self.textView.editable)
    {
        [[self textView]becomeFirstResponder];
    }
}
于 2012-07-25T06:24:32.233 回答