Vai al contenuto

Aiutino codice xCode


Messaggi raccomandati

dovrei correggere questo codice:

NSString *messaggio = [TextField stringValue];

char cmd[300];

sprintf(cmd, "defaults write /Library/Preferences/com.apple.loginwindow LoginwindowText %@", messaggio);

system(cmd);

praticamente su una finestra c'e la TextField e un bottone.. in modo che il messaggio che c'e sulla textField appaia sulla schermata di LogIn.

chi è così gentile da aiutarmi?

dovrei convertire l'NSString un un puntatore char

aiutino?

Link al commento
Condividi su altri siti

Allora... rispondo prima alla tua domanda con questo codice:

NSString *message = nil;
//due modi:
//il primo è come printf, ma siccome devi solo appendere una stringa puoi usare il secondo.

message = [NSString stringWithFormat:@"defaults write /Library/Preferences/com.apple.loginwindow LoginwindowText %@", [textField stringValue]];
message = [@"defaults write /Library/Preferences/com.apple.loginwindow LoginwindowText" stringByAppendingString:[textField stringValue]];

const char * utf8String = [message UTF8String];

Poi... invece di usare system (l'ho fatto con un mio esempio, ma è facile cambiarlo ;)


NSTask *echo = [NSTask launchedTaskWithLaunchPath:@"/usr/bin/defaults" arguments:[NSArray arrayWithObjects:@"write", @"test.francy.test", @"Prova2",@"ciao",nil]];
[[NSNotificationCenter defaultCenter] addObserver:self
		selector:@selector(taskIsTerminated:)
                       name:NSTaskDidTerminateNotification
                       object:echo];
......

- (void) taskIsTerminated:(NSNotification *) notification {
NSTask *echo = [notification object];

   if ([echo terminationStatus] == 0) {
       NSLog(@"Task succeeded.");
}else
       NSLog(@"Task failed.");


}


Makas-Book:~ makaveli$ defaults read test.francy.test
{
   CFBundleDevelopmentRegion = English;
   CFBundleExecutable = "${EXECUTABLE_NAME}";
   CFBundleIconFile = "";
   CFBundleIdentifier = "com.yourcompany.${PRODUCT_NAME:rfc1034identifier}";
   CFBundleInfoDictionaryVersion = "6.0";
   CFBundleName = "${PRODUCT_NAME}";
   CFBundlePackageType = APPL;
   CFBundleShortVersionString = "1.0";
   CFBundleSignature = "????";
   CFBundleVersion = 1;
   LSMinimumSystemVersion = "${MACOSX_DEPLOYMENT_TARGET}";
   NSMainNibFile = MainMenu;
   NSPrincipalClass = NSApplication;
   Prova2 = ciao;
}
Makas-Book:~ makaveli$ 


Link al commento
Condividi su altri siti

Archiviato

Questa discussione è archiviata e chiusa a future risposte.

×
×
  • Crea Nuovo...