6

UIView含む がありUITextViewます。はUIView内で開始されますUIViewController

しかし、UITextView箱に触れても何も起こりません。キーボードは表示されず、デリゲート メソッドもインタラクションに応答しません。

コード:

    noteText = [[UITextView alloc]initWithFrame:CGRectMake(0, 0, 700, 240)];
    noteText.layer.borderColor = [UIColor colorWithRed:0 green:0 blue:0 alpha:0.2].CGColor;
    noteText.layer.borderWidth = 2;
    [noteText setEditable:YES];
    noteText.userInteractionEnabled = YES;
    noteText.returnKeyType = UIReturnKeyDone;
    noteText.font = [UIFont fontWithName:@"Calibri" size:16];
    noteText.textColor = [UIColor blackColor];
    [self addSubview:noteText];

更新 1

UIViewController から他のすべてのビューを削除し、UIViewController に UITextView を配置するだけで、まだ反応しません。カーソルもキーボードも表示されません。

4

8 に答える 8

7
noteText = [[UITextView alloc]initWithFrame:CGRectMake(0, 0, 700, 240)];
noteText.layer.borderColor = [UIColor colorWithRed:0 green:0 blue:0 alpha:0.2].CGColor;
noteText.layer.borderWidth = 2;
[noteText setEditable:YES];
noteText.userInteractionEnabled = YES;
noteText.returnKeyType = UIReturnKeyDone;
noteText.font = [UIFont fontWithName:@"Calibri" size:16];
noteText.textColor = [UIColor blackColor];
[self addSubview:noteText];

// 2 つの提案

self.userInteractionEnabled = YES; // superview may blocks touches
self.clipsToBounds = YES; // superview may clips your textfield, you will see it
于 2012-10-10T08:44:00.353 に答える
4

エラーが見つかりました。

1つのクラスでは、サブクラスの代わりにUITextViewを分類し、canBecomeFirstResponderをNOに設定します。

于 2012-10-10T09:26:19.830 に答える
3

これを試してください: .h ファイルで、デリゲート UITextViewDelegate に準拠します

:<UITextViewDelegate>

あなたの.mファイルで:

noteText.delegate = self;

そしてデリゲートメソッド:

- (BOOL)textViewShouldBeginEditing:(UITextView *)textView{
    [textView becomeFirstResponder];
    return YES;
}

- (BOOL)textViewShouldEndEditing:(UITextView *)textView{
    //resign for exapmple
    return YES;
}

この助けを願っています!

于 2012-10-09T10:28:48.740 に答える
2

このことを確認してください:

  1. 右側にビューコントローラーを追加しますUIWindow

  2. このメソッドでウィンドウを設定し、ウィンドウ makeKeyAndVisibleに追加します。rootViewController

    -(BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions

    ここで xib ファイルまたは に何か問題があると思いますappdelegate

于 2012-10-08T05:03:26.187 に答える
1

UIView 内でオーバーライド- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event {して、タッチを受信して​​いるかどうかを確認してください

念のuserInteractionEnabled = YES;ため、UIView オブジェクトの設定を試してください。何らかの形で NO に設定されている場合、すべてのサブビューに細流します

于 2012-10-04T12:50:18.060 に答える
1

オーバーライドされた-(void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)eventメソッドに間違いがあるのではないでしょうか? 多分あなたはresignFirstResponderそこにいるのですか、それとも何よりもいくつかのビューを置きますか?

于 2012-10-08T09:34:45.687 に答える
1

このような場合は、次の項目を確認してください。

  1. テキスト ビューが適切に保持され、 でのみリリースされていることを確認してくださいdealloc。( を使用していない場合ARC)
  2. テキスト ビューとその親ビューの両方のフレームを確認します。subviewが親ビューの内側に正確に収まっていることを確認してください。また、これがすべてsuperviewsのテキスト ビューに当てはまることを確認してください。
  3. delegateが正しく設定されているか確認してください。

これらがすべて完了したら、テキスト ビューの上にボタンを追加して、それtarget selectorが呼び出されるかどうかを確認してください。はいの場合、問題はテキスト ビュー デリゲートまたはリリース ステートメントにあります。それ以外の場合、問題はテキスト ビューまたはそのスーパービューのフレーム設定にあります。

于 2012-10-10T08:34:31.440 に答える