Ruby Motion剛剛出來,屏幕錄像似乎沒有說明是否可以使用Interface Builder來構建接口並將它們集成到RubyMotion項目中。這樣的事情可能嗎?或者我是否真的擁有一切代碼,更不用說維護iPhone/iPad的不同代碼了?我可以使用Interface Builder構建RubyMotion應用程序嗎?
我的代表不夠高,無法創建rubymotion標籤,因此請在適當情況下提供幫助。
Ruby Motion剛剛出來,屏幕錄像似乎沒有說明是否可以使用Interface Builder來構建接口並將它們集成到RubyMotion項目中。這樣的事情可能嗎?或者我是否真的擁有一切代碼,更不用說維護iPhone/iPad的不同代碼了?我可以使用Interface Builder構建RubyMotion應用程序嗎?
我的代表不夠高,無法創建rubymotion標籤,因此請在適當情況下提供幫助。
我只是想指出,RubyMotion 1.3現在支持的,你投入resources
文件夾中的文件.xib
自動編譯。所以,現在的流程變爲:
.xib
文件(無需創建一個項目,只需使用文件|新建... |文件),並將其保存到文件夾resources
。由於目前還沒有對插座的支持,請注意爲代碼中要使用的每個控件設置tag
屬性(您可以在「View」標題下的每個組件的屬性表中找到)。.xib
成.nib
文件的,所以享受:)UIViewController
派生類中,加載使用loadNibNamed:owner:options:
筆尖,如下圖所示。viewDidLoad
中,使用viewWithTag:
獲取各種組件,並使用addTarget:action:forControlEvents:
添加事件處理程序,如下所示。作爲獎勵,下次你想編輯你的xib時,只需要做open resources/MyView.xib
,它只會啓動XCode的好的部分。
class CalculatorViewController < UIViewController
def loadView
views = NSBundle.mainBundle.loadNibNamed "Keyboard", owner:self, options:nil
self.view = views[0]
end
def viewDidLoad
button = view.viewWithTag 1
button.addTarget self, action:'buttonTapped:', forControlEvents:UIControlEventTouchUpInside
end
def buttonTapped(button)
# ...
end
end
下面是一個使用這種技術的示例項目:[MotionCalc](https://github.com/nlehuen/MotionCalc) –
也許也想看看這個:http://ianp.org/ 2012/05/07/rubymotion-和接口建設者/ – hutch
但是,如果你真的想使用IB那麼你仍然可以或許用它來佈置您的用戶界面並調用
NSBundle.mainBundle.loadNibNamed(MY_NIB_NAME, owner:self, options:nil)
或相似。我認爲RubyMotion沒有任何名稱可以改變,所以你可以在IB中使用你的ruby類,方法是明確地設置它們。
也許你可以多說一些關於如何將XIB編譯到NIB中以用於RubyMotion項目的問題?這似乎是棘手的部分... –
你可以使用'ibtool'。棘手的部分是連接插座和操作,因爲您不能使用XCode的拖放功能。 –
我試過這樣做,傳遞選項'--compile'和'--flatten NO',但它一直拋出一個'NSInternalInconsistencyException'給我。我正在用'myViewController.alloc.initWithNibName(「MyViewController」,bundle:nil)加載它' 你究竟如何運行'ibtool'來獲得一個可加載的nib文件? –
您可能可以在IB中構建接口並調用命令行工具將XIB編譯爲NIB。
但是,由於IB無法解析IBOutlet
和IBAction
令牌的Ruby源文件,因此您無法連接插座或分配操作。通常,NIB加載代碼會在加載您的NIB後爲您建立連接。你必須自己做代碼。
在RubyMotion的兩個明顯的弱點中,對我來說這是最糟糕的。 (另一個是缺乏代碼完成將使可可API的寫入真的很乏味。)
ruby mine的下一個版本IDE支持ruby運動開發和Cocoa API的自動完成。所以這可能對你有所幫助 – Rubinsh
卡布奇諾有同樣的問題。他們開發了一個名爲XcodeCapp的工具:https://github.com/cappuccino/cappuccino/tree/master/Tools/XcodeCapp
它創建「虛擬」Obj-C文件,您可以將您的插座和操作連接到IB中,在後臺自動解析它們並使您能夠使用IB佈局您的卡布奇諾UI 。
RubyMotion應該可以採取類似的方法(如果你真的想使用IB)。
是的,你可以在RubyMotion使用Interface Builder。
位於資源目錄中的.xib文件會自動編譯爲.nib文件,並可供您的項目使用。
甚至還有支持出口的方式,如果你有這樣的傾向:
https://github.com/yury/ib#readme
http://ianp.org/2012/05/07/rubymotion-and-interface-builder/
是誰的人已經作出:
這裏是一個教程視頻:https://www.youtube.com/watch?v=cOapNvehbg4
這是網站https://github.com/yury/ib
特蒂普:要找到rubymotion包裝檢查此源
http://rubymotion-wrappers.com/
希望這有助於
試試這個http://ianp.org/2012/ 05/07/rubymotion-and-interface-builder/ – Andrei