以前は、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];
