Category:
Xojo
Xojo の Cocoa アプリ開発。ちょっと込み入ったことをすると Declare を連発する訳ですが、その際にコントロールの View の階層構造が欲しくなることがあります。その方法は以下の通り。
あと、Xojo API のメソッドなどもちょっと調べてみたのでメモとして書いておきます。
Soft Declare Function subtreeDescription Lib "Cocoa" Selector "_subtreeDescription" (id As Integer) As CFStringRef非公開 API なので、Mac App Store アプリにこのコードを残さないようにしましょう :)
MsgBox(subtreeDescription(Me.Handle))
あと、Xojo API のメソッドなどもちょっと調べてみたのでメモとして書いておきます。
Soft Declare Function NSClassFromString lib "Cocoa" (aClassName as CFStringRef) as Ptrまぁ、Runtime で頑張らずとも CocoaFramework.dylib を読めば OK という話でもあります。
Soft Declare Function class_copyMethodList Lib "Cocoa" (cls As Ptr, ByRef outCount As UInt64) As Ptr
Soft Declare Function method_getName Lib "Cocoa" (method As Ptr) As Ptr
Soft Declare Function sel_getName Lib "Cocoa" (sel As Ptr) As CString
Dim count As UInt64 = 0
Dim methods As Ptr
methods = class_copyMethodList(NSClassFromString("XOJListboxView"), count)
Dim mb As MemoryBlock = methods
For i As Integer = 0 To count - 1
MsgBox(sel_getName(method_getName(mb.Ptr(i * 4)))) // 32-bit
Next
$ otool -oV "/Applications/Xojo 2013 Release 2/Xojo.app/Contents/Resources/Frameworks/CocoaFramework.dylib"
Comments