2011-08-29 41 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; 
} 
相關問題