2011-03-02 62 views
0

例如,我有一個UISlider,調用- (IBAction)sliderMoved:(id)sender,當一個新值「滑動」到Value Changed事件後,它執行一些任務。但是如果我想根據它的初始價值做些什麼呢?如何在界面生成器中訪問UI元素的屬性

如果有人更改了nib文件,在Interface Builder中對某些內容進行硬編碼以匹配默認值將會馬虎不得,並且很難再調試。那麼,如何在Interface Builder中訪問爲此UISlider設置的默認值?

而且,更一般地說,如何訪問這些屬性的任何這樣的UI元素?是否有setter/getter方法已經爲這些方法合成?

回答

1

正如Maunil所說,使用bindings將InterfaceBuilder中的UISlider連接到代碼中的UISlider對象。完成此操作後,您可以訪問其所有方法&屬性。

設置初始值,使用setValue方法:在UISlider的財產,喜歡的東西:

- (void)viewDidLoad { 
    ... 
    // where mySlider is declared as a UISlider object and bound to your XIB slider 
    [mySlider setValue:some_default_value]; 
    ... 
} 

UISlider Class Reference文檔的詳細信息。

+0

優秀。感謝您的語法。至於IB連接,是從文件所有者到UISlider,然後選擇我剛剛聲明的UISlider IBOutlet? – 2011-03-02 02:00:22

+0

是的,只需右鍵單擊滑塊並將其拖到文件的所有者,如果這是您聲明滑塊的位置。請注意,您嘗試綁定的對象必須在頭文件中聲明,以便它在InterfaceBuilder中顯示。像[Cocoa Bindings編程主題](http://developer.apple.com/library/mac/#documentation/DeveloperTools/Conceptual/IB_UserGuide/ConnectionsandBindings/ConnectionsandBindings.html)文檔那樣冗長,值得一試。 – phaxian 2011-03-02 02:09:00

+0

是的,這是我試過的,經過一段類型演繹,讓它完美地工作! – 2011-03-02 02:17:05

1

您可以將頭文件中的滑塊聲明爲IBOutlet,然後將其掛接到IB中。然後你將能夠訪問代碼中的所有屬性。

+0

啊,是的。愚蠢的OldMcStopher。我爲滑塊的「輸出」創建了一個IBOutlet,但沒有爲滑塊本身設置IBOutlet。謝謝。 – 2011-03-02 01:52:28

相關問題