在viewDidLoad中,我检查两个UITextField是否有有效输入(文本长度> 0)然后我设置了UIButton的enabled属性。使用调试器我想出了
self.loginButton.enabled = YES;
执行,但是当我用
打印布尔值时print self.loginButton.enabled
我之前得到NO(没关系)但是在执行语句后也没有。我还多次检查过self的UIButton属性是否通过IBOutlet连接到我的故事板中的UIButton,情况就是这样。我也可以用控制台打印titleLabel的文本。当我点击其中一个UITextFields并更改文本
时- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string
正在调用,我将再次检查文本。这里
self.loginButton.enabled = YES;
似乎正常工作。使用iOS 5我没有任何问题,但我没有在此问题的文档中找到iOS 6的任何相关更改。
有什么想法吗?
编辑:问题有所不同。我在UIViewController中也有一个UITableView,并且tableView比那时预期的要大(然后在Storyboard中设置得更大)(直到知道我不知道为什么)并且似乎覆盖了UIButton。在执行
之前更改UIButton或UITableView的框架self.loginButton.enabled = YES;
的工作原理。设置enabled属性时可能会有延迟,因为打印布尔值仍为NO。
NSLog(@"%i",self.loginButton.isEnabled);
self.loginButton.enabled = YES;
NSLog(@"%i",self.loginButton.isEnabled);
2012-10-13 16:11:43.460 [1524:c07] 1
2012-10-13 16:11:43.462 [1524:c07] 1
答案 0 :(得分:1)
你在self.loginButton.enabled = YES;
进行initWithNibName:
吗?可能在执行此操作时,self.loginButton
未从xib初始化,这可以解释为什么它在shouldChangeCharactersInRange
中有效。尝试打印self.loginButton
以查看是否属于这种情况。
答案 1 :(得分:0)
问题是UITableView正在从故事板中声明的初始大小调整大小,因为它是自动调整大小,然后它覆盖了UIButton区域。按钮命中被解释为与UITableView的交互。更改UIButton框架,UITableView框架或自动调整设置可以解决问题。