Suchergebnisse

Suchergebnisse 101-120 von insgesamt 128.

  • Die neue Methode setFocusRingType: kannte ich nicht! Meine View, die das Focus-Rect zeichnen soll, ist von NSView abgeleitet. Sie ist zusammen mit einer Standard-NSOutlineView in einem Fenster enthalten. Die NSOutlineView zeichnet das Focus-Rect, meine View leider nicht. Ich habeQuellcode (1 Zeile) und Quellcode (1 Zeile) solwohl in initWithFrame: als auch in awakeFrom: ausprobiert, leider wird das Focus-Rect nicht gezeichnet. Meine View überschreibt die Methoden "- (BOOL) acceptsFirstResponder"…

  • Die ganzen Cocoa-Controls (NSTableView, NSOutlineView, ..) malen selbstständig ein blaues Rechteck um die View, wenn sie den Eingabefokus haben. Wie kann ich so ein Rechteck um eine (custom) NSView zeichnen lassen? Muß das manuell (durch selberzeichnen) geschehen oder gibt es etwas Fertiges? Danke, Tjark

  • Das einfachste sind hier C++-Klassen, wobei du je eine Klasse von einer Struktur ableitest. Dann hast du die größte Kompatibilität mit C-Funktionen, die solche structs als Parameter erwarten. C++ und Objective-C lässt sich mischen (siehe dazu die Apple-Doku zu Objective-C). Falls du aber reines Objective-C machen willst, bleiben dir nur Wrapper-Klasse mittels einer von dir vorgeschlagenen Möglichkeiten, vobei ich Variante a) bevorzugen würde, da du dann nicht den Aufbau der Strukturen über einze…

  • RE: Probleme mit Events

    chacko - - macOS, OS X, Mac OS, Darwin

    Beitrag

    Damit von deiner View die entsprechenden Handler aufgerufen werden, must du in awakeFromNib Quellcode (1 Zeile) aufrufen. Die Handler-Methoden werden aber nur aufgerufen, wenn die View den Input-Focus hat ("Key" ist). Wie man es hinbekommt, dass die Methoden immer aufgerufen werden, sobald das zugehörige Fenster vorne ist, habe ich noch nicht herausgefunden. Um die View-Koordinaten der Maus-Position zu bekommen, machst du folgendes: Quellcode (6 Zeilen)

  • Also, wenn man nur Verzeichnisse auswählen möchte, kann man das so lösen: 1. Eine Klasse von NSDocumentController ableiten 2. Folgende Methode überschreiben: Quellcode (9 Zeilen) Ob das "setTreatsFilePackagesAsDirectories" erwünscht ist, muss man natürlich von Fall zu Fall unterscheiden. 3. Im Haupt-Nib-File ein Objekt dieser Klasse instanziieren. Dadurch wird die eigene Klasse als DocumentController benutzt.

  • RE: Tooltip in NSView

    chacko - - macOS, OS X, Mac OS, Darwin

    Beitrag

    [super ...] rufe ich als erstes in der Methode auf. Unter developer.apple.com/documentat…pple_ref/doc/uid/20000469 wird erklärt, wie Tooltips in Views funktionieren. Leider wird das Performance-Problem, dass ich mit den Tooltip-Rects habe, nicht angesprochen.

  • RE: Tooltip in NSView

    chacko - - macOS, OS X, Mac OS, Darwin

    Beitrag

    Leider hilft das auch nichts. Ich hatte zwar super [mouseMoved: xyz] nicht ausgeführt, aber auch mit ändert sich nichts. Wenn ich das Tooltip-Rect setze, darf ich keine "setTooltip:" in "mouseMoved" machen, sonst wird gar nichts angezeigt. Aber auch dann wird, wie beschrieben, nur ein Mal beim Einblenden des Tooltips der String abgefragt.

  • Tooltip in NSView

    chacko - - macOS, OS X, Mac OS, Darwin

    Beitrag

    Ich möchte in einer NSView verschiedene Tooltips für bestimmte Bereiche anzeigen. Eigentlich sind dafür ja die Tooltip-Rects (addToolTipRect, usw.) gedacht. Leider habe ich u.U. SEHR VIELE Tooltip-Rects, so dass das Löschen und Neuanlegen sehr lange dauert (>20 sec), wenn sich die Größe der View verändert. Wenn ich in der View nun den Event-Handler "mouseMoved:" implementiere und dort abhängig von der Maus-Position den passenden String für den Tooltip erzeuge und mit "setTooltip:" setzte, wird e…

  • RE: Hm,...

    chacko - - macOS, OS X, Mac OS, Darwin

    Beitrag

    Das Panel (eigenes Fenster) befindet sich wie beschrieben ein einem eigenen Nib-File. Meine Applikation ist eine standard Multi-Doc-Cocoa-Apüplikation, also mit den Nib-Files "MainMenu.nib" und "MyDocument.nib" (und eben dem 3. Nib-File mit dem Panel). Das Laden des Nib-Files geschieht in "readFromFile", so dass bei jedem Öffnen eines neuen Documents so ein Panel mit ProgressIndicator angelegt wird. Dein Vorschlag mit "orderOut" löst wahrscheinlich das Memory-Leak-Problem. Gibt' sonst eine besse…

  • Hi! In meiner Dokumenten-Klasse möchte ich in "readFromFile: ofType:" ein Panel anzeigen, dass einen ProgressIndicator und einen Text (NSTextField) enthält. Dazu habe ich ein Nib-File "LoadingPanel.nib" angelegt mit einem ensprechenden Panel (meine Dokumenten-Klasse ist "File's Owner"). Das Dokument kann über entsprechende Outlets auf das Panel, den Text und den ProgressIndicator zugreifen. In "readFromFile: ofType:" mache ich nun folgendes: Quellcode (10 Zeilen) Nun habe ich folgende Probleme: …

  • URLs escapen

    chacko - - macOS, OS X, Mac OS, Darwin

    Beitrag

    Wenn Performance-Probleme aufgrund sehr vieler Retain/Release-Aufrufe auftreten (z.B. in kleinen Schleifen mit zig-tausend Iterationen), kann man die CFRelease/CFRetain-Funktionen ansteller der ObjC-Varianten nehmen, da die schneller sind (dynamic binding von ObjC wird umgangen). Das gleiche gilt für andere Funktionen von Objekttypen, die es auch in CoreFoundatione gibt (z.B. Zugriff auf Einträge in NSArray, NSDictionary). Aber ich glaube, dass bringt selten eine Geschwindigkeitsvorteil auf die …

  • URLs escapen

    chacko - - macOS, OS X, Mac OS, Darwin

    Beitrag

    Da CFStringRef und NSString ein und dasselbe sind (Stichwort "Tool Free Bridge"), müsste es sich so etwas vereinfachen lassen (CoreFoundation Funktionen geben immer Strings mit RetainCount == 1 zurück): Quellcode (4 Zeilen) Den Code habe aber nicht getestet

  • Wenn man in einer Standard-Cocoa-Applikation einen "Apfel-Klick" auf den Dokumenten-Namen in der Titelleiste des Fensters macht, springt ein Menü auf, das die übergordneten Verzeichnisse des Dokuments anzeigt. Wie kann ich den Inhalt dieses Menüs selber festlegen? Safari nutzt diese Menü z.B. für die übergordneten URLs der aktuell angezeigten URL.

  • Also, ich weiß zwar nicht, wie man eine NSTextField dazu bewegen kann, ein Bild skaliert zu zeichnen; ich habe aber neulich in dem Open Source von Path Finder 3 ein Stück Code gefunden, wie man eine skalierte Kopie eines NSImage anlegt (Datei "NSImage-NTExtensions.m"; Methode "- (NSBitmapImageRep*) bitmapImageRepForSize: (int) size"): Quellcode (15 Zeilen) Der vollständige Code sucht sich zuerst aus den vorhandenen Repräsentationen des Image die heraus, deren Größe am nächsten an der gewünschten…

  • Zitat: „Wieso willst Du eine Methode in mehrere Kategorien überschreiben? In meiner Kategorie wird in der Delegate-Klasse abgefragt ob die Methode outlineView:menuForTableColumn:item: unterstützt wird. Erst dann wird die Methode in der Delegate-Klasse aufgerufen, gibt es die Methode nicht passiert auch nichts. “ Es geht mir nicht um die Methode, die durch den Delegate implementiert werden KANN, sondern um die Tatsache, dass du in deiner Category zu NSOutlineView eine Methode überschreibst, die v…

  • Die Methode "menuForEvent:" über eine Kategorie zu überschreiben, ist ja ein interessante Lösung! Ich wußte nicht, dass das möglich ist. Denn: Wird die Methode einer Klasse in mehreren Kategorien überschrieben, welche Implementierung wird dann bei dem Aufruf der entsprechenden Methode ausgeführt? Schließlich existieren die Kategorien gleichberechtigt nebeneinander und sind nicht wie bei der Ableitung in eine Reihenfolge gebracht.

  • Danke für die schnelle Hilfe zu so später Stunde! Ich hatte mir schon fast gedacht, dass man ohne abzuleiten das nicht hinbekommt, obwohl doch durch das Delegate-Prinzip die Notwendigkeit des ständigen Ableitens verringert werden soll. Laut Doku gibt die NSView-Implementierung der Methode 'menuForEvent:' einfach das Ergebnis der Methode 'menu' zurück, welche das Menu sein sollte, dass man in das Outlet 'menu' geschrieben hat (per Interface Builder). Ich werde deinen Code-Vorschlag 'mal ausprobie…

  • Ich möchte in einer NSOutlineView ein Kontextmenü anzeigen. Dazu habe ich im Interface Builder in dem entsprechenden Nib-File ein NSMenu angelegt und das Outlet "menu" der NSOutlineView mit diesem NSMenu verbunden. Laut Doku sollte das ausreichen, damit dieses Menu per rechter Mausklick bzw. Control-Klick angezeigt wird. Leider tut es das aber nicht. Was mache ich falsch bzw. was muss ich machen, damit ich ein Kontextmenu in der OulineView angezeigt bekomme?

  • Danke! Es lag tatsächlich an meiner View! Und zwar, weil ich die Methode - (NSView *) hitTest: (NSPoint) aPoint implementiert hatte (war mal zu Testzwecken) Dort gebe ich self zurück, falls aPoint innerhalb der View bounds liegt, sonst nil; genauso wie es die Doku verlangt. Ich verstehe allerdings nicht, warum das die Schwierigkeiten verursacht hat. Jetzt aber gleich noch eine andere Frage hinterher: In meiner selbstgemalten View innerhalb der SplitView möchte ich gerne die mouseMoved-Nachrichte…

  • Ich habe in einem Fenster eine NSSplitView, die im oberen Teil eins NSOutlineView uns im unteren Teil eine eigene (von NSView-abgeleitete) View enthält. Merkwürdigerweise läßt sich in dieser Konfiguration in der OutlineView teilweise (mal geht's mal nicht) keine Zeilen mehr selektieren bzw. keine Knoten mehr auf- und zuklappen. Ebenfalls funktioniert weder der horizontale, noch der vertikale Scrollbar richtig (d.h. wie bei den Mausaktionen innerhalb der OutlineView funktioniert das Bedienen der …