1

UITextField を含む UIViewController があります。

#import <UIKit/UIKit.h>

@interface TextMemoViewController : UIViewController<UITextFieldDelegate> 

@property (unsafe_unretained, nonatomic) IBOutlet UITextField *textMemo;

@end

実装コードは次のとおりです。

#import "TextMemoViewController.h"

@implementation TextMemoViewController
@synthesize textMemo;

- (void)viewDidLoad
{
    [super viewDidLoad];
    // Do any additional setup after loading the view from its nib.
    self.textMemo.delegate = self;


}
//.....
- (BOOL)textFieldShouldBeginEditing:(UITextField *)textField {
    return YES;
}
- (BOOL)textFieldShouldReturn:(UITextField *)textField {
    [textField resignFirstResponder];
    return  YES;
}

問題は、textField をクリックすると、キーボードが表示されますが、何も押せないことです。すべてのシミュレーターがハングアップします。この動作ではテキスト入力はできません。

textFields を持ついくつかの UIViewControllers があり、すべて問題ありません。しかし、ここでは、それが起こる理由を見つけることができません。Xcode で DerivedData を消去し、すべてのシミュレーターを再起動して、それらの設定をリセットしました。iphoneでも同じ状況。誰にもアイデアがありますか?

4

4 に答える 4

1

UIAlertView代理人を確認してください。

- (void)alertView:(UIAlertView *)alertView clickedButtonAtIndex:(NSInteger)buttonIndex
{
  // DO NOT Create Other UIAlertView.
}

これは iOS 5.1 のバグだと思います。

于 2013-03-19T05:51:52.907 に答える
0

変更する必要があると思います:

@property (unsafe_unretained, nonatomic) IBOutlet UITextField *textMemo;

に:

@property (strong, nonatomic) IBOutlet UITextField *textMemo;

違いはstrong、の代わりですunsafe_unretained。あなたの見解は保持されていないと思います。それが、あなたがそれを操作できない理由です。

于 2012-06-20T13:19:25.437 に答える
0
//make sure you use this delegate and add all your textfields..
- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event{
UITouch* touch = [[event allTouches] anyObject];
//  NSLog(@"Touches began called.");

//fill these in with all your textfields..
if([UserFirstName isFirstResponder] && [touch view] != UserFirstName){
    [UserFirstName resignFirstResponder];
}

}
于 2020-11-26T11:21:11.947 に答える
-1

決して遅いよりはましです:)

ありがとうございましたが、私がずっと前に見つけたように、問題は以前のビューで辞任したレスポンダーではありませんでした。この場合、ビューは他のビューに覆われていますが、レスポンダーは変更されていません。

多分誰かがこれが便利だと思うでしょう。

于 2013-03-28T14:36:02.077 に答える