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