2011-08-29 47 views
1

我已经放弃了我的一个xib上的UITextField控件,我希望它是不可编辑的。我在“属性检查器”上“取消选中”了“已启用”和“用户交互已启用”。但是,当我在模拟器中运行此应用程序时,当我点击TextField时,键盘始终显示。我已经搜索过,这两个属性似乎是控制这个特定控件的“编辑性”的东西。我能够创建一个UITextArea,因为存在一个“可编辑”复选框,我“未选中”。但是,在UITextField的检查器中没有“可编辑”复选框。我运气不好吗?还是有更多的设置需要我不知道?UITextField始终是可编辑的

回答

0

由于没有解决方案工作(复选框和添加代码来禁用TextField)拉出我的头发后,最终解决问题的是删除控件,然后重新添加它。重新添加后,我可以通过“Enabled”复选框或向textField.enabled分配“NO”来禁用TextField。我不知道它为什么现在可以工作,但这可能是解决其他问题的解决方案。

+0

是的,抱歉,我没有及时回复,这几乎是我在谈论IB与您的计划之间的联系。有时候我会改变IB的东西,而这在实际的程序中不会发生。 –

0

如果要禁用来自用户的触摸事件,则“正在启用”属性是您正在查找的属性。

看到:http://developer.apple.com/library/ios/#documentation/uikit/reference/UIControl_Class/Reference/Reference.html#//apple_ref/occ/cl/UIControl

有可能你遇到一些麻烦您Interface Builder中和你的应用程序之间的联系(我有这个问题几次)。

尝试直接在您的代码中设置值,而不是使用IB并查看它是否会给您所需的结果。

+0

是什么意思有界面生成器和应用程序之间的联系问题? – 5StringRyan

0

试试这个,在viewDidLoad中设置你的文本字段这样的:

myTextField.userInteractionEnabled = FALSE; 
0
yourTextFieldName.enabled = NO; 

这似乎是工作非常适合我,希望这有助于。

+0

代码中放置这些类型配置的最佳位置在哪里?在ViewControl的这个特定xib的“ViewDidLoad”部分? – 5StringRyan

+0

对不起,忘了提到这一点,我把这个放在viewDidLoad中用于表示xib。 –

1

尝试这样的:

- (BOOL)textFieldShouldBeginEditing:(UITextField *)textField{ 
    return NO; 
}