svk
ソースリポジトリのリビジョン調べる方法がわからない。
svk info するとミラーリポジトリのリビジョンがでてくるし……その先が知りたいのだよ!!(バージョン文字列を自動化したい
ソースリポジトリのリビジョン調べる方法がわからない。
svk info するとミラーリポジトリのリビジョンがでてくるし……その先が知りたいのだよ!!(バージョン文字列を自動化したい
newcocoa という gem を作ろうと思った。ので、Makefile 式の Cocoa パッケージングを Rakefile 式に変更中
http://lab.lowreal.net/trac/browser/c/mac/iircv
インターフェイス殆ど書き直した(わらい
しかしまだローカライズファイルを作ってない。もうちょっと使ってみてリリースしよう(リリース?
todo
そういえばこれがわからなかったからキモかったんだよなぁ。調べてたらわかった。Info.plist に指定するらしい。
<key>NSMainNibFile</key>
<string>Main</string>
<key>NSPrincipalClass</key>
<string>NSApplication</string>上の例だと Main.nib がロードされる (NSApplicationMain から?)。
NSPrincipalClass はなんか起動時に自動的にインスタンス化されるもの?らしい。ないと console にエラー吐いて起動しない。
Windows には Ircv というイカしたメッセージを表示するものがあるのですが、Mac だとこれっぽいのがないので作ってみました。Growl だと時系列が乱れたりするのでなんかだめだってときに便利かもしれません。
これを作るにあたりいろいろ学んだので楽しかった。
あと言語依存を解決したい。Interface Builder で nib 作って読み込む方法がいまだにわからないのでどうにかしたい。
Universal Binary 云々は確認がめんどい割に面白くないのでやる気がおきない。
わかってきた。すっごい便利だなぁ。
Ruby のクラスを作りたい場合を(とは限らないけど)、例えば Classes で NSObject を選んで Classes -> Subclass ... するとサブクラスができるので、それに対してアウトレット/アクションを設定する。でもって Instantiate ... するとインスタンスが出現するので、Ctrl + ドラッグで配置したコントロールとアウトレット/アクションを結びつけていく。
例えばボタンを Ctrl クリックしてそのインスタンスされたオブジェクトにドロップするとアクション一覧がでてどれに接続するか選べる。
とかいうものらしい。あとは Ruby 側でインスタンス化したりするのと一緒だけど、アプリケーションバンドル化しないとうまく実行できないのでちょっとめんどい。Makefile 書いて、make clean; make; open IIrcv.app みたいなのを毎回実行するようにしてる。
おまけ。Create Files For ... するとクラスのひな形を作ってくれていいんだけど、もちろん Objective-C。なので Ruby に変換するのを Ruby ででっちあげた。
#!/usr/bin/ruby
require 'erb'
header = ARGF.read
_, class_name, super_class = */@interface ([^¥s]+) : ([^¥s]+)/.match(header)
outlets = header.scan(/IBOutlet id (.*?);/)
actions = header.scan(/^- ¥(IBAction¥)(.*?):¥(id¥)sender;/)
ERB.new(DATA.read, $SAFE, '-').run
__END__
require 'osx/cocoa'
include OSX
class <%=class_name%> < <%=super_class%>
<%- outlets.each do |outlet| -%>
ib_outlets :<%=outlet%>
<%- end %>
<%- actions.each do |action| -%>
def <%=action%>(sender)
end
<%- end %>
def awakeFromNib
end
end
ドキュメント書くのめんどくさい
トイレ詰まった。もっかい流したら流れた。こええ