[TxMt] Fwd: tm_dialog won't open window
Dominik Gabi
doga at student.ethz.ch
Fri Mar 16 00:16:33 UTC 2007
Unfortunately I've never written something in ruby therefore I don't
understand much of the code you've written. What I tried exactly is:
macbook:~/Desktop dominik$ PLIST=`cat args.plist`
macbook:~/Desktop dominik$ echo $PLIST
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE plist PUBLIC "-//
Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/
PropertyList-1.0.dtd"> <plist version="1.0"> <dict> <key>debug</key>
<integer>1</integer> <key>finalize</key> <integer>1</integer>
<key>rootClass</key> <string>my root class</string> </dict> </plist>
Now what I tried
macbook:~/Desktop dominik$ tm_dialog -p {$PLIST} MyNib.nib // This
returns tm_dialog, usage page
macbook:~/Desktop dominik$ tm_dialog -p $PLIST MyNib.nib // The same
macbook:~/Desktop dominik$ tm_dialog -p args.plist MyNib.nib // I
get the following error:
2007-03-16 01:09:10.776 tm_dialog[4827] *** Uncaught exception:
<NSInvalidArgumentException> [NOTE: this exception originated in the
server.]
*** -[NSCFString setObject:forKey:]: selector not recognized [self =
0x16a5c80]
Trace/BPT trap
macbook:~/Desktop dominik$ tm_dialog -p {args.plist} MyNib.nib //
The window opens, no error, but the checkboxes aren't checked and my
textfield is empty.
Is it wrong to assume, that if I get the values from the nib
correctly, it should work the other way around as well!? Maybe I
missed a setting in IB?
Dominik
On Mar 16, 2007, at 12:47 AM, Henrik Nyh wrote:
> Dominik Gabi wrote:
>> Thx for your help. I could play a little bit around with tm_dialog
>> the last few days but there are still some things I don't get:
>> 1. How do I pass default values to the elements of the nib file. I
>> tried "tm_dialog -p {arguments.plist} my_nib_file.nib" in several
>> variations but it always results in an error like
>
> Assuming Ruby:
>
> require "#{ENV['TM_SUPPORT_PATH']}/lib/escape"
> require "#{ENV['TM_SUPPORT_PATH']}/lib/osx/plist"
>
> to get methods for e.g. shell escaping and plist stuff,
> respectively. Then you could write code like
>
> defaults = {"key" => "value", "key2" => "value2"}
> response = `$DIALOG -p #{e_sh defaults.to_plist} #{e_sh "#{ENV
> ['TM_BUNDLE_SUPPORT']}/nib/SomeDialog.nib"}`
> response_hash = PropertyList::load(response)
> puts "key2 is now #{response_hash["key2"]}!"
>
> I believe the hash must have string keys, not symbol keys. e_sh()
> escapes for the shell.
More information about the textmate
mailing list