【发布时间】:2013-07-23 16:36:31
【问题描述】:
我的 textFieldDidBeginEditing 方法遇到了一个小问题..
我正在尝试确定调用哪个文本字段进行编辑,以便我可以决定是否希望视图向上移动以使该字段可见。
这是我的方法,我已经注释了一些东西,试图找出错误在哪里:
- (void)textFieldDidBeginEditing:(UITextField *)sender
{
NSLog(@"This method is called");
//[self.view setFrame:CGRectMake(0,-120,320,568)];
if(sender.tag == _nameF.tag)
{
NSLog(@"This if is called");
//[self.view setFrame:CGRectMake(0,-120,320,568)];
}
else
{
NSLog(@"Else called instead");
}
}
我在日志中看到“此方法被调用”,所以我知道该方法首先被调用,但在那之后,我看到了:
2013-07-23 12:27:18.654 SidebarDemo[2110:60b]-[NSConcreteNotification 标签]:无法识别的选择器发送到实例 0x15d7b8c0 2013-07-23 12:27:18.655 SidebarDemo[2110:60b] * 由于未捕获的异常“NSInvalidArgumentException”而终止应用程序,原因:“-[NSConcreteNotification 标签]:无法识别的选择器发送到实例 0x15d7b8c0”
这让我相信这是 sender.tag 的问题,但据我所知,我的代码没有任何问题。
这可能是什么问题?有没有其他方法可以用来找出正在编辑的文本字段?
谢谢。
【问题讨论】:
-
如何声明_nameF?
-
错误来自
sender.tag还是_nameF.tag?这个方法是被UITextFieldDelegate使用还是代表UITextFieldTextDidBeginEditingNotification通知? -
它代表 UITextFieldTextDidBeginEditingNotification 通知使用...
-
你不能只做一个原始指针比较吗?如果(发件人 == _nameF)
-
我试过了,但是没有调用 if 语句,由于某种原因它转到“else”。
标签: objective-c uitextfield nslog nsexception