- Registriert
- 05.05.10
- Beiträge
- 1
Hi ihr lieben Xcoder,
Ich bin in der Mac Os developementecke ziemlich neu. Aber bin durch ein einfaches Problem darauf gestoßen. Ich muss beruflich oft Medienkennwörter im Quicktime player eingeben. Dies war nie ein Problem und auch sehr bequem, denn man konnte diese einfach in den Properties eintragen. Doch nun habe ich 10.6 und den Qucktime X. Hier gibt es kein Controle Panel mehr für Qt in den Systemeinstellungen und man hat nur die Möglichkeit über die shell mit "qtdefaults write MediaKeys "categegory" "mediakey" " die Kennwörter einzugeben,w as natürlich mühsamer ist. Da hab ich mir gedacht, es kann doch nicht so schwer sein ein kleines Tool zu schreiben. Also hab ich mich erstmal damit auseinander gesetzt wie das überhaupt bei Apple funktioniert, und mir ein paar cocoa basics angeguckt und ein bisel das Handling mit Xcode und dem IB.
Ich konte ich dann auch einen recht sauberen Code hinkriegen, zumindest meiner Meinung nach. Aber ich kriege das Programm nicht ausgeführt. Es sind zwar keine angezeigten Fehler mehr drin, und das Interface wird nach "builden und runnen" auch angezeigt, aber wenn ich auf den Biutton drücke, wird nichts in qtdefaults eingetragen.
Mein Interface beseht, wie man sieht, jediglich aus zwei NSTextFields und einem NSButton.
Hier der Code:
AppDelegate.m
#import "MKenterAppDelegate.h"
@implementation MKenterAppDelegate
- (IBAction)clickAddButton: (id)sender; {
NSString *defaultArgument = @"qtdefaults write MediaKeys";
NSString *categoryText = [categoryTextField stringValue];
NSString *mediakeyText = [mediakeyTextField stringValue];
NSArray *argumentsArray = [NSArray arrayWithObjects:defaultArgument, categoryText, mediakeyText, nil];
[NSTask launchedTaskWithLaunchPath
"/bin/sh" arguments:argumentsArray];
}
@end
AppDelegate.h
#import <Cocoa/Cocoa.h>
@interface MKenterAppDelegate : NSObject {
IBOutlet NSTextField *categoryTextField;
IBOutlet NSTextField *mediakeyTextField;
}
- (IBAction)clickAddButton: (id)sender;
@end
Dann frag ich mich ausserdem, ob man eigentl. sieht wie der Shellbefehl dann ausgeführt wird, oder ob das nur im Hintergrund passiert.
Aber wie gesagt, so passiert erst mal gar nichts nach dem Button Drücken.Was könnte ich vergesen haben, was könte falsch sein? der Path der shell? Ich würd mich über jegliche Hilfe freuen,
ich bin auf jeden Fall sehr motiviert noch mehr Cocoa zu lernen, es macht nämlich Spaß
LG
n
Ich bin in der Mac Os developementecke ziemlich neu. Aber bin durch ein einfaches Problem darauf gestoßen. Ich muss beruflich oft Medienkennwörter im Quicktime player eingeben. Dies war nie ein Problem und auch sehr bequem, denn man konnte diese einfach in den Properties eintragen. Doch nun habe ich 10.6 und den Qucktime X. Hier gibt es kein Controle Panel mehr für Qt in den Systemeinstellungen und man hat nur die Möglichkeit über die shell mit "qtdefaults write MediaKeys "categegory" "mediakey" " die Kennwörter einzugeben,w as natürlich mühsamer ist. Da hab ich mir gedacht, es kann doch nicht so schwer sein ein kleines Tool zu schreiben. Also hab ich mich erstmal damit auseinander gesetzt wie das überhaupt bei Apple funktioniert, und mir ein paar cocoa basics angeguckt und ein bisel das Handling mit Xcode und dem IB.
Ich konte ich dann auch einen recht sauberen Code hinkriegen, zumindest meiner Meinung nach. Aber ich kriege das Programm nicht ausgeführt. Es sind zwar keine angezeigten Fehler mehr drin, und das Interface wird nach "builden und runnen" auch angezeigt, aber wenn ich auf den Biutton drücke, wird nichts in qtdefaults eingetragen.
Mein Interface beseht, wie man sieht, jediglich aus zwei NSTextFields und einem NSButton.
Hier der Code:
AppDelegate.m
#import "MKenterAppDelegate.h"
@implementation MKenterAppDelegate
- (IBAction)clickAddButton: (id)sender; {
NSString *defaultArgument = @"qtdefaults write MediaKeys";
NSString *categoryText = [categoryTextField stringValue];
NSString *mediakeyText = [mediakeyTextField stringValue];
NSArray *argumentsArray = [NSArray arrayWithObjects:defaultArgument, categoryText, mediakeyText, nil];
[NSTask launchedTaskWithLaunchPath
"/bin/sh" arguments:argumentsArray];}
@end
AppDelegate.h
#import <Cocoa/Cocoa.h>
@interface MKenterAppDelegate : NSObject {
IBOutlet NSTextField *categoryTextField;
IBOutlet NSTextField *mediakeyTextField;
}
- (IBAction)clickAddButton: (id)sender;
@end
Dann frag ich mich ausserdem, ob man eigentl. sieht wie der Shellbefehl dann ausgeführt wird, oder ob das nur im Hintergrund passiert.
Aber wie gesagt, so passiert erst mal gar nichts nach dem Button Drücken.Was könnte ich vergesen haben, was könte falsch sein? der Path der shell? Ich würd mich über jegliche Hilfe freuen,
ich bin auf jeden Fall sehr motiviert noch mehr Cocoa zu lernen, es macht nämlich Spaß

LG
n