如何检测 UITextView 上的点击?
How to detect taps on UITextView?
我的视图如下所示:
当用户尝试输入信息时,键盘覆盖了 UITextViews
我想尝试使用添加到 UITextView
的 UIGestureRecognizer
来检测 UITextView
上的点击=],然后根据点击的视图更改约束。
当我点击它时,应用程序崩溃了。
这是我用来检测点击 UITextViews
-
的代码
//in viewDidLoad
let tap = UITapGestureRecognizer(target: self.textYoutube, action: "handleTap")
self.textYoutube.addGestureRecognizer(tap)
func handleTap(tap: UITapGestureRecognizer) {
if (tap.state == UIGestureRecognizerState.Ended) {
println("[handleTap] Tap ended")
}
}
我的代码有问题吗?有没有更好的方法来移动 UITextViews
?
使用通知,它们提供键盘框架,新键盘的尺寸可能会有所不同,框架将允许在其上方移动输入字段。
注册这些通知并处理将视图移出键盘:
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(keyboardDidShow:) name:UIKeyboardDidShowNotification object:nil];
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(keyboardDidHide:) name:UIKeyboardWillHideNotification object:nil];
从用户信息中获取键盘框架:
CGRect keyboarddRect = [[notification.userInfo objectForKey:UIKeyboardFrameEndUserInfoKey] CGRectValue];
释放dealloc中的通知
[[NSNotificationCenter defaultCenter] removeObserver:self name:UIKeyboardDidShowNotification object:nil];
[[NSNotificationCenter defaultCenter] removeObserver:self name:UIKeyboardWillHideNotification object:nil];
交替使用委托方法:
textViewDidBeginEditing:
textViewDidEndEditing:
检测文本框上的点击;实现 textField 的委托方法 textFieldShouldBeginEditing:
我的视图如下所示:
当用户尝试输入信息时,键盘覆盖了 UITextViews
我想尝试使用添加到 UITextView
的 UIGestureRecognizer
来检测 UITextView
上的点击=],然后根据点击的视图更改约束。
当我点击它时,应用程序崩溃了。
这是我用来检测点击 UITextViews
-
//in viewDidLoad
let tap = UITapGestureRecognizer(target: self.textYoutube, action: "handleTap")
self.textYoutube.addGestureRecognizer(tap)
func handleTap(tap: UITapGestureRecognizer) {
if (tap.state == UIGestureRecognizerState.Ended) {
println("[handleTap] Tap ended")
}
}
我的代码有问题吗?有没有更好的方法来移动 UITextViews
?
使用通知,它们提供键盘框架,新键盘的尺寸可能会有所不同,框架将允许在其上方移动输入字段。
注册这些通知并处理将视图移出键盘:
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(keyboardDidShow:) name:UIKeyboardDidShowNotification object:nil];
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(keyboardDidHide:) name:UIKeyboardWillHideNotification object:nil];
从用户信息中获取键盘框架:
CGRect keyboarddRect = [[notification.userInfo objectForKey:UIKeyboardFrameEndUserInfoKey] CGRectValue];
释放dealloc中的通知
[[NSNotificationCenter defaultCenter] removeObserver:self name:UIKeyboardDidShowNotification object:nil];
[[NSNotificationCenter defaultCenter] removeObserver:self name:UIKeyboardWillHideNotification object:nil];
交替使用委托方法:
textViewDidBeginEditing:
textViewDidEndEditing:
检测文本框上的点击;实现 textField 的委托方法 textFieldShouldBeginEditing: