5

UITextFieldDelegateで問題が発生しました。誰でも助けてくれれば、とても感謝しています。UITextViewがあり、そのデリゲートを実装しました。通常、すべてのデリゲートメソッドは非常に優れています。しかし、この場合:

  1. UITextViewを編集不可に設定します。
  2. ポップアップが表示されるまでUITextViewを長押しします(コピー、切り取り、...)。
  3. ポップアップを閉じ、UITextViewを編集可能に設定します
  4. UITextViewをタップして、UITextViewを編集モードにします。
  5. デリゲートメソッドtextViewShouldBeginEditingが呼び出されていないことがわかります。

UIの変更を処理するには、textViewShouldBeginEditingを呼び出す必要があります。誰もがそれを解決する方法を知っていますか?どうもありがとう!

テストプロジェクト:メソッドの呼び出しをNSLogする簡単なテストプロジェクトを作成しました。私のケースをすばやくテストできます。ありがとうございます。ソースコードはここにあります:http://goo.gl/tGQS5

4

2 に答える 2

7

おそらく行くのを忘れましたか:

myTextView.delegate = 自己;

?

追加情報

私がリリースした最近のアプリでは、似たようなことをしました。

UITextField を無効にして、UITableViewSectionHeader で長押しジェスチャを使用してセクション ヘッダーの名前を編集し、セクション ヘッダーを 1 回タップして選択できるようにしました。

私は入れなければなりませんでした:

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

私の長押しジェスチャ認識コールバックメソッドでは。

于 2012-07-25T06:49:48.033 に答える
0

@Albert Zhang、「textViewShouldBeginEditing」は、テキストビューがファーストレスポンダーになったときにのみ呼び出されます。以下のように強制することができます。

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

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