• úvod
  • témata
  • události
  • tržiště
  • diskuze
  • nástěnka
  • přihlásit
    registrace
    ztracené heslo?
    F_OFRProgramovani pro OSX (IDE Xcode, Cocoa, Objektive-C, AppleScript)
    MARECEK
    MARECEK --- ---
    QUITE: cg :-)
    MARECEK
    MARECEK --- ---
    MATESISKO
    MATESISKO --- ---
    QUITE: nakonec bylo potřeba ResourceKey NSURLEffectiveIconKey. Přesto díky
    QUITE
    QUITE --- ---
    Řešili jste někdy někdo CFBundleIconFile ve screensaveru? Všechno je nastaveno jak má ale screensaver má stále defaultní ikonu.. :/
    QUITE
    QUITE --- ---
    NUCLID: výsledné řešení: CFNetDiagnosticCreateWithURL
    Sice to taky vyžaduje URL ale je to aspoň "správnější" metoda. ,))

    MATESISKO: nepřišel jsem na to jak PrefPane a Screensaver debugovat lépe než s pomocí Console.. Ale pokud ti to ten název aplikace přiřadí ok, zkusil bych zatím nastavit nějakou ikonu na pevno jestli se provede aspoň to. A zkusil bych ověřit správnost řádku [url getResourceValue:&iconImage forKey:NSURLCustomIconKey error:NULL];
    MATESISKO
    MATESISKO --- ---
    přesně tohle jsem zkoušel. Raději blíže popíšu problém:
    Získam seznam všech aplikací takto:

    NSString *pathString = @"/Applications";
    NSURL *directoryURL = [[NSURL alloc] initFileURLWithPath:pathString isDirectory:YES];


    NSArray *keys = [NSArray arrayWithObjects:
    NSURLIsDirectoryKey, NSURLIsPackageKey, NSURLLocalizedNameKey, NSURLCustomIconKey, nil];

    NSDirectoryEnumerator *enumerator = [[NSFileManager defaultManager]
    enumeratorAtURL:directoryURL
    includingPropertiesForKeys:keys
    options:(NSDirectoryEnumerationSkipsPackageDescendants |
    NSDirectoryEnumerationSkipsHiddenFiles)
    errorHandler:^(NSURL *url, NSError *error) {
    return YES;
    }];

    potom v cyklu procházím enumerator a do PopUpButtonu přidávám itemy:

    NSString *localizedName = nil;
    [url getResourceValue:&localizedName forKey:NSURLLocalizedNameKey error:NULL];

    NSNumber *isPackage = nil;
    [url getResourceValue:&isPackage forKey:NSURLIsPackageKey error:NULL];


    if ([isPackage boolValue]) {
    [popupImageApp addItemWithTitle:localizedName];
    NSImage *iconImage = nil;
    [url getResourceValue:&iconImage forKey:NSURLCustomIconKey error:NULL];
    NSMenuItem *item = [popupImageApp itemWithTitle:localizedName];
    [item setImage:iconImage];


    Názvy aplikací se přidají korektně, akorát ty ikony ne. Protože se jedná o PreferencePane, nedá se to debugovat, takže ani nevím, jestli získám k jednotlivým aplikacím ikony. Jak se PreferencePane dá debugovat? Případně metodou kontrolních tisků? :) Díky
    MATESISKO
    MATESISKO --- ---
    nevíte, jestli existuje možnost, jak vložit do NSPopUpButtonu položku obsahující kromě textu i obrázek? ikonu? díky
    QUITE
    QUITE --- ---
    NUCLID: vyzkoušim, dík. nicméně co se týče fór a dokumentace, vychází tohle jako vpodstatě jediná metoda...
    NUCLID
    NUCLID --- ---
    QUITE: Jinak jestli jenom potrebujes zjistit, jestli je pocitac pripojenej k siti, tak tohle asi nebude nejlepsi metoda... Spousta lidi pouziva treba LittleSnitch. Kdyby se mi aplikace jen tak zacala pripojovat na Google (a nemela s nim nic spolecnyho), tak u me konci :)
    NUCLID
    NUCLID --- ---
    QUITE: Zkus tohle:
    NSData *data;  
    NSURL *url = [NSURL URLWithString: @"http://www.google.com"];  
    NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL: url   
                                                        cachePolicy: NSURLRequestReloadIgnoringCacheData  
                                                        timeoutInterval: 10];      
    NSURLResponse *response;  
    NSError *error;  
    data = [NSURLConnection sendSynchronousRequest: request  
                            returningResponse: &response  
                            error: &error];  
    NSString *output = [NSString stringWithCString:[data bytes] length:[data length]];
    PKB
    PKB --- ---
    jelikoz mate v zasobe skvely odkazy, tak bych se chtel zeptat, jestli nemate nejaky pekny navody, jak pracovat interface builderem ve spojeni s Xcode a kodem. Propojovani, outlety a tak. mam nastudovany zaklady, tak bych se chtel podivat na neco pokrocilejsiho..

    dekuju ;)
    QUITE
    QUITE --- ---
    Nevíte jak nastavit timeout pro:

    - (BOOL) connectedToNetwork
    {
    return ([NSString stringWithContentsOfURL:[NSURL URLWithString:@"http://www.google.com"] encoding:NSASCIIStringEncoding error:nil]!=NULL)?YES:NO;
    }
    QUITE
    QUITE --- ---
    Nemáte někdo potuchu o tom jakým kódem vytvořit globální klávesovou zkratku? (tj. System Preferences -> Keyboard -> Keyboard Shortcuts)

    Stačil by imho AppleScript. ,)
    QUITE
    QUITE --- ---
    QUITE: tady je aktuálnější verze: http://temp.sandwichlab.net/WebSaver.saver2.zip

    - Start at random row funguje jak má
    - celé je to o něco rychlejší
    - odstraněno bezpočet chyb
    - než se načte WebKit, zobrazuje se vizuál "aby bylo vidět že se něco děje"
    MARECEK
    MARECEK --- ---
    PS: zvazoval jsem instalaci zenity pres port ale to se mi delat nechce a rad bych pouzil nejaky nativni osx veci....
    MARECEK
    MARECEK --- ---
    ahoj, na linuxu jsem pouzival par svejch aplikaci psanejch v shellu se zenity frontendem.. jak (v cem) nejsnaz tyhle veci prepsat aby mi stejne dobre (z crontabu) behaly i pod osx?
    QUITE
    QUITE --- ---
    NUCLID: je to vysouvací sheet..nastavení screensaveru.. ten toolbar tam je proto, že časem bych rád třeba přidal další funkce (např. nastavení prohlížení: možnost vypnout si na stránce Flash, JavaScript, zapnout cache, atd...). Doufam že ta nestandartnost nakonec nebude na obtíž a bude se to snáz pamatovat. ,)

    Velký písmena jsou dobrá poznámka, předělam.

    Stránky necachuju, počítam s tim, že uživatel chce mít fresh data. ,))
    Kliknutím sem můžete změnit nastavení reklam