我曾经让我的UIView
那个与下面的几个代表一起工作得很好。现在我把它UIView
从IB
变成了一个UIScrollView
(现在用作主视图)。
由于我已更改为UIScrollView
我的活动代表,例如下面的那些代表不再工作。比如键盘,我也有一个可以移动的元素,而不仅仅是静态的。
我从 IB 中分配了我能想到的所有代表,并做了我知道的大部分事情。但我对为什么事件没有被触发的想法已经不多了......
UIView
如果我通过做cmd + z
他们的工作回到旧时代。
谁能指出我正确的方向?
- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *) event
{
[self.view endEditing:TRUE];
}
- (BOOL)textViewShouldBeginEditing:(UITextView *)textView {
// register for keyboard notifications
return YES;
}
编辑 - 补充答案:
@Wezly
答案是完全有效的。但是如果有人不想子类化UIScrollView
并且只使用UITextFieldDelegate
方法。
另一种方法是添加viewDidLoad
:
注意:您仍然无法访问很多东西,但这是另一种解决方法
///
/// DelegateNotifications
[[NSNotificationCenter defaultCenter] addObserver:self
selector:@selector(keyboardWillShow:)
name:UIKeyboardWillShowNotification
object:self.view.window];
// register for keyboard notifications
[[NSNotificationCenter defaultCenter] addObserver:self
selector:@selector(keyboardWillHide:)
name:UIKeyboardWillHideNotification
object:self.view.window];
[[NSNotificationCenter defaultCenter] addObserver:self
selector:@selector(textFieldDidEndEditing:)
name:UITextFieldTextDidEndEditingNotification
object:self.view.window];