1

我有 UIViewController 和 UITextField 。

#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 回答