我在一个设置为nil的类上有一个属性,但我不知道是什么在做这件事。我在它上面设置了一个符号断点(watchpoint),但没有捕捉到它;我还在setter中设置了典型的断点,但没有捕捉到它。
activeTextField
属性的用途是什么?当用户开始在字段中输入数据时,如果显示的键盘阻塞了该字段,我会将屏幕向上滑动到足以显示该字段。
因此,在textFieldDidBeginEditing
设置值的时间点和显示的键盘之间发生了一些事情,它们实际上是一个接一个,每次在keyboardWasShown
中,我的activeTextField
= nil。
我如何才能找出为什么它被设置为零呢?
@property (nonatomic, retain) UITextField *activeTextField;
-(void)setActiveTextField:(UITextField *)activeTextField
{
_activeTextField = activeTextField;
}
-(void)textFieldDidBeginEditing:(UITextField *)textField
{
self.activeTextField = textField;
}
-(void)textFieldDidEndEditing:(UITextField *)textField
{
self.activeTextField = nil;
}
-(void)keyboardWasShown:(NSNotification *)aNotification
{
if (self.activeTextField == nil)
{
return;
}
发布于 2017-02-28 19:03:33
愚蠢的程序员错误。我有两个继承自我上面发布的代码的类,它们的名称几乎相同,一个注册了键盘通知,另一个没有注册,这使得我的结果非常混乱。
https://stackoverflow.com/questions/42516722
复制相似问题