我在ViewController中创建一个UIActionSheet.我还添加了代码来捕获UIKeyboardWillShowNotification和UIKeyboardWillHideNotification通知.
我的问题是当我解雇,我得到两个通知键盘隐藏和再次显示.
有人可以告诉我如何防止这个问题?它只发生在iOS 7中,并使用SDK 7构建
更新一些代码:
在viewDidLoad中,我初始化一个按钮,当触摸按钮,操作表将被显示.
- - (void)viewDidLoad
- {
- [super viewDidLoad];
- UIButton* button = [UIButton buttonWithType:UIButtonTypeRoundedRect];
- button.frame = CGRectMake(10,50,100,30);
- [button setTitle:@"Open menu" forState:UIControlStateNormal];
- [button addTarget:self action:@selector(buttonTouched) forControlEvents:UIControlEventTouchUpInside];
- [self.view addSubview:button];
- UITextView* textView = [[UITextView alloc] initWithFrame:CGRectMake(0,40)];
- [self.view addSubview:textView];
- [textView becomeFirstResponder];
- [[NSNotificationCenter defaultCenter] addObserver:self
- selector:@selector(keyboardWillHide:)
- name:UIKeyboardWillHideNotification
- object:nil];
- [[NSNotificationCenter defaultCenter] addObserver:self
- selector:@selector(keyboardWillShow:)
- name:UIKeyboardWillShowNotification
- object:nil];
- }
- - (void)searchBarCancelButtonClicked:(UISearchBar *) searchBar{
- [searchBar resignFirstResponder];
- }
- - (void) buttonTouched{
- UIActionSheet* actionSheet = [[UIActionSheet alloc] initWithTitle:@"Action sheet" delegate:self cancelButtonTitle:@"Cancel" destructiveButtonTitle:@"Destructive" otherButtonTitles:@"Hello",nil];
- [actionSheet showInView:self.view];
- }
- - (void)keyboardWillShow:(NSNotification*)notification{
- NSLog(@"keyboardWillShow");
- }
- - (void)keyboardWillHide:(NSNotification*)notification{
- NSLog(@"keyboardWillHide");
- }
我运行应用程序,键盘会显示,我触摸按钮,动作表显示.我通过触摸其上的任何按钮关闭操作表,并记录打印:
keyboardWillShow
keyboardWillHide
keyboardWillShow