2014-02-10 154 views
0

我有一個ViewController包含幾個文本框。如果這些文本框是空白的並且用戶想要點擊「保存」按鈕,我不希望用戶能夠保存。我希望他們退出IBAction,沒有什麼可以保存的。我將如何去做到這一點?如何擺脫IBAction?

- (IBAction)save:(id)sender { 

if ([personYouOweMoney.text isEqualToString: @" "] && [amtYouOwe.text isEqualToString:@" "]) 
{ 
    //GET OUTTA THIS DANG IBACTION 
} 
+0

'personYouOweMoney.text.length == 0'優於@「」,'@「」'不是空字符串。 – johnMa

+1

IBActions只是對象內的方法。真的沒什麼特別的。也許關於簡單的編程基金會的一點點閱讀。 – John

回答

3

我希望他們退出了IBAction爲的沒有什麼可以保存的。

您可以通過檢查的條件和返回,這樣做:

if (/*all fields are empty*/) { 
    return; 
} 

然而,這將是一個錯誤的東西從用戶界面設計的角度做。您的最終用戶會相信發生了一些事情,因爲他們被允許點擊按鈕。一個更好的方法是在所有輸入字段爲空時禁用[Save]按鈕,並且只有在需要保存某些內容時重新啓用它。這對於最終用戶而言並不模糊,因爲他們會知道,爲什麼系統不保存東西,因爲他們會知道,直到他們鍵入內容才能進行保存(如果從上下文中不明顯,考慮爲此添加一條消息就在您禁用的按鈕旁邊)。

+0

實際上聽起來好多了。我怎麼能編碼我的按鈕,所以它沒有啓用,直到所有的字段輸入? – doc92606

+0

@ doc92606完全不同的問題 – esqew

+0

@ doc92606您可以在您的字段的事件處理程序中執行它們(它們都可以共享一個處理程序,除非它們有特定的需要)。處理程序會檢查所有字段是否爲空。如果全部都是空的,它會設置'saveButton.enabled = NO';否則,它會設置'saveButton.enabled = YES'。 – dasblinkenlight

1

IBAction與void(除了Xcode知道它應該連接到Interface Builder中的操作)相同之外。

要退出的方法了,你只需要使用的回報,同樣你會做退出任何其他方法無效的了:

return;