2013-03-22 41 views
8

如何以編程方式設置uitextfield和UITextView邊框顏色,當我們在textfield和textview中輸入或編輯時。如何在iphone應用程序中設置uitextfield bordercolor

我使用此代碼,但不更改UITextView的邊框顏色。

- (BOOL)textFieldShouldBeginEditing:(UITextField *)textField 
{ 
    textField.layer.borderColor=[[UIColor cyanColor] CGColor]; 
} 
+0

-(BOOL)textFieldShouldBeginEditing:(UITextField *)textField { textField.layer.borderColor=[[UIColor cyanColor] CGColor]; } 

-(BOOL)textFieldDidBeginEditing:(UITextField *)textField { textField.layer.borderColor=[[UIColor cyanColor] CGColor]; } 

你可以閱讀更多有關文檔的UITextFieldDelegate方法你有沒有包括QuartzCore框架到您的建立階段? – 2013-03-22 14:14:39

+0

@ste prescott是的,我包含quartzCore框架到我的構建階段。但是當我編輯文本字段時,它不應該改變邊框顏色。 – raman 2013-03-22 14:18:12

+0

@raman:你有沒有試過我的答案? – Bhavin 2013-03-22 14:41:44

回答

25

不要忘記:#Import <QuartzCore/QuartzCore.h>

工作代碼:

- (BOOL)textFieldShouldBeginEditing:(UITextField *)textField 
{ 
    textField.layer.cornerRadius=8.0f; 
    textField.layer.masksToBounds=YES; 
    textField.layer.borderColor=[[UIColor redColor]CGColor]; 
    textField.layer.borderWidth= 1.0f; 
    return YES; 
} 
+1

感謝您的回覆。 – raman 2013-03-22 14:50:28

+6

在iOS 7中,您必須設置邊框寬度或顏色不生效。 – Micah 2014-03-26 19:45:37

1
- (BOOL)textFieldShouldBeginEditing:(UITextField *)textField 

聲明如果用戶可以編輯的文本字段。該方法更改爲:

- (void)textFieldDidBeginEditing:(UITextField *)textField { 
    textField.layer.borderColor=[[UIColor cyanColor] CGColor]; 
} 
+0

我對uitextfield使用uiborderstyleline。所以,如何將邊框顏色設置爲uitextfield的uiborderstyleline。 – raman 2013-03-22 14:37:05

+0

感謝您的回覆 – raman 2013-03-22 14:49:02

1

對於給邊境顏色UITextField

添加#import "QuartzCore/QuartzCore.h" fram工作。

textField.layer.borderColor = [UIColor lightGrayColor].CGColor; // set color as you want. 
textField.layer.borderWidth = 1.0; // set borderWidth as you want. 
+0

我使用uiborderstyleline作爲uitextfield。所以,如何將邊框顏色設置爲uitextfield的uiborderstyleline。 – raman 2013-03-22 14:42:22

+0

謝謝你的回覆。 – raman 2013-03-22 14:50:44

0

當你編輯的文本字段,也有很多的方法,似乎真的很相似。您正在嘗試使用-textFieldShouldBeginEditing:。根據文檔,textFieldShouldBeginEditing,「詢問委託是否應該在指定的文本字段中開始編輯。」用法是:「當用戶執行通常會啓動編輯會話的動作時,文本字段會首先調用此方法以查看是否應該實際進行編輯。在大多數情況下,您只需從該方法返回YES以允許編輯繼續。」這不是你想要做的。您可以使用-textFieldDidBeginEditing:。這種方法,「告訴代表編輯開始爲指定的文本字段。」它「通知代表指定的文本字段只是成爲第一個響應者,你可以使用這個方法來更新你的代理的狀態信息,例如,你可以使用這個方法來顯示在編輯時應該可見的覆蓋視圖。

這意味着你的代碼應該改變從:在http://developer.apple.com/library/ios/#documentation/uikit/reference/UITextFieldDelegate_Protocol/UITextFieldDelegate/UITextFieldDelegate.html

+0

我使用uiborderstyleline uitextfield。所以,如何將邊框顏色設置爲uitextfield的uiborderstyleline。 – raman 2013-03-22 14:40:21

+0

感謝您的回覆。 – raman 2013-03-22 14:49:30

相關問題