我想在文本字段爲空時隱藏按鈕,然後在用戶開始鍵入時顯示它。以編程方式隱藏和取消隱藏按鈕
我試着做了一個按鈕的插座,並在viewDidLoad使用while循環來實現按鈕和文本字段的插座。它沒有工作,我一直在四處搜索,但大部分代碼都是客觀的,因此我很難將其翻譯爲swift。
當文本字段爲空時,甚至可以隱藏按鈕嗎?
斯威夫特首選
我想在文本字段爲空時隱藏按鈕,然後在用戶開始鍵入時顯示它。以編程方式隱藏和取消隱藏按鈕
我試着做了一個按鈕的插座,並在viewDidLoad使用while循環來實現按鈕和文本字段的插座。它沒有工作,我一直在四處搜索,但大部分代碼都是客觀的,因此我很難將其翻譯爲swift。
當文本字段爲空時,甚至可以隱藏按鈕嗎?
斯威夫特首選
使用UITextFieldDelegate隱藏和顯示按鈕。
class ViewController: UIViewController,UITextFieldDelegate //set delegate to class
@IBOutlet var txtValue: UITextField //create a textfile variable
override func viewDidLoad() {
super.viewDidLoad()
txtValue.delegate = self
YourButton.hidden=false;
//set delegate to textfile
}
func textFieldDidBeginEditing(textField: UITextField!)
{ //delegate method
YourButton.hidden=true;
}
func textFieldShouldEndEditing(textField: UITextField!) -> Bool { //delegate method
return false
}
func textFieldShouldReturn(textField: UITextField!) -> Bool { //delegate method
textField.resignFirstResponder()
return true
}
可能會幫助你。
試試這個代碼:
func textField(textField: UITextField, shouldChangeCharactersInRange range:NSRange, replacementString string: String) -> Bool
{
text = text.stringByTrimmingCharactersInSet(NSCharacterSet.whitespaceAndNewlineCharacterSet())
var strMsg: String = textView.text.stringByTrimmingCharactersInSet(NSCharacterSet.whitespaceAndNewlineCharacterSet())
if strMsg.length() > 0 || text.length() > 0
{
self.YourButton.alpha = 1.0
self.YourButton.enabled = true
}
else
{
self.YourButton.alpha = 0.5
self.YourButton.enabled = false
}
return true
}
感謝您花時間回答我的問題,但我繼續@Bhumica答案,因爲它很簡單,但我相信你的代碼的作品,以及其他的東西:) – Nathannn
首先,您必須使用此代碼隱藏按鈕。
btn1.hidden = YES;
後分配UITextFieldDelegate到文件的所有者,也實現了相同的委託在.h文件中,當你開始寫寫在文本框,你這個代碼一些文字後比
。
-(BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string
{
NSString *newString = [textField.text stringByReplacingCharactersInRange:range withString:string];
[self updateTextLabelsWithText: newString];
return YES;
}
-(void)updateTextLabelsWithText:(NSString *)string
{
[myLabel setText:string];
}
當文本框的文本運行使用
btn1.hidden = NO;
希望這有助於。
感謝張貼,但正如我所說我有一個很難轉換爲迅速 – Nathannn
你可以發佈你的代碼嗎? – anhtu
您是否閱讀過文檔? 「檢測textview中的變化」和「使按鈕變爲不可見」的組合應該執行此技巧 – Arc676
爲TextDelegates添加偵聽器。您將在用戶開始輸入文字時收到通知,然後您可以根據文字輸入隱藏/取消隱藏。 – GoodSp33d