Wie Sie die tatsächliche TouchBar-Hardware identifizieren können, ist in einem Mac-Buch mit Objektcode verfügbar, so dass ich Touchbar-Menüoptionen bereitstellen kann.Wie kann man die tatsächliche TouchBar-Hardware in einem Mac-Buch mit obj c finden?
Antwort
Von der Apple-Dokumentation:
Es besteht keine Notwendigkeit und keine API, für Ihre Anwendung, ob oder nicht zu wissen, gibt es eine Touch-Bar zur Verfügung. Unabhängig davon, ob Ihre App auf einem Computer ausgeführt wird, der die Touch Bar unterstützt oder nicht, wird die Benutzeroberfläche (UI) der App angezeigt und verhält sich auf die gleiche Weise.
Um zu überprüfen, ob Touchbar verfügbar ist (UI/UX zum Beispiel verbessern), sollten Sie die Delegaten implementieren und ein Bool gesetzt wie:
// Declare a class variable
@property (nonatomic, assign) BOOL isTouchBarAvailable;
@available(OSX 10.12.1, *)
// A bellow version can not be installed on a new MacBook.
// Like an iPhone 7 can't have iOS9 installed.
- (NSTouchBar *)makeTouchBar
{
// ... here the code to make the bar
self.isTouchBarAvailable = YES
return touchBar
}
Quelle: https://developer.apple.com/reference/appkit/nstouchbar?language=objc
Wenn Sie möchten, eine gewisse Kontrolle können Sie isAutomaticCustomizeTouchBarMenuItemEnabled
verwenden:
import Cocoa
@NSApplicationMain
class AppDelegate: NSObject, NSApplicationDelegate {
func applicationDidFinishLaunching(_ aNotification: Notification) {
// Here we just opt-in for allowing our instance of the
// NSTouchBar class to be customized throughout the app.
if #available(OSX 10.12.2, *) {
NSApplication.shared().isAutomaticCustomizeTouchBarMenuItemEnabled = true
}
}
/*
Whether or not a menu item to customize the touch bar can be automatically
added to the main menu. It will only actually be added when hardware
or simulator is present. Defaults to NO. Setting this property to YES
is the recommended way to add the customization menu item.
*/
@ I'L'I können wir API-Unterstützung mit OSX-Version identifizieren, angenommen, der alte Mac-Benutzer aktualisiert ihr Betriebssystem, aber nicht TouchBar (Hardware), wie können wir identifizieren. –
@JebaMoses: Es gibt keine spezielle Möglichkeit, die mir bekannt ist. Ich nehme an, Sie könnten zurückgeben, ob eine TouchBar erfolgreich zurückgegeben werden konnte oder nicht. Ansonsten gibt es laut den Dokumenten wirklich keine API, mit der man umgehen kann, da die TouchBar mehr oder weniger verfügbar ist, unabhängig davon, ob das System über die Hardware verfügt, die es unterstützt. [Hier ist eine Möglichkeit, wie Sie nach einem Rückgabewert suchen können ...] (https://gist.github.com/anonymous/1f8ad96ebcfb4ecfa489ee56ce6df1f6) (Swift). Wenn nichts zurückgegeben wird, können Sie davon ausgehen, dass es keine TouchBar gibt. –
Grundsätzlich können Sie in 'Obj-C' etwas tun, das äquivalent zu' if (NSTouchBar() == nil) ist ... ehrlich gesagt, ich habe keine Ahnung, ob es funktionieren wird oder nicht. Ich bekomme nichts zurück, aber ich habe keine touchBar, um es zu testen :) –
NSTouchBar sowie schwer in der Software arbeiten können Ware, wie vom Simulator in Xcode gezeigt. Es erfordert nicht, dass die Hardware funktioniert. In den Versionshinweisen zu Xcode 8 erfahren Sie jedoch, wie Sie testen können, ob das Betriebssystem alle Arten von Touch Bar-Funktionen unterstützt.
https://developer.apple.com/library/content/releasenotes/DeveloperTools/RN-Xcode/Introduction.html
Xcode 8.1 unterstützt Touch-Bar für Macs, die es enthalten, und unterstützt das Hinzufügen von Touch-Bar-Funktionalität, um Ihre Anwendung. (28859277) Bevor Sie die Touch Bar-Funktion in Ihrer App verwenden, vergewissern Sie sich, dass die App auf einer Mac OS-Version ausgeführt wird, die Unterstützung für Touch Bar mit einer Laufzeitprüfung bietet.
Zum Beispiel die folgenden Objective-C-Code führt eine Überprüfung der Laufzeit sicher NSTouchBar ist verfügbar zu machen:
NSClassFromString (@ "NSTouchBar") = nil
In Swift Code, eine Verfügbarkeitsprüfung tun für Mac OS 10.12.1 und eine Laufzeitprüfung für die Verfügbarkeit der Touch Bar-Klasse. Zum Beispiel:
NSClassFromString („NSTouchBar“) = nil
- 1. Wie kann man Datenpunkte aus Firebase mit Obj-C ziehen?
- 2. Wie segmentiert man die tatsächliche menschliche Körperform von einem Bild?
- 3. Obj C: Wie fügt man einem Blockobjekt eine Beschreibung hinzu?
- 4. Wie benutzt man Obj-C 2.0 mit GNUstep?
- 5. Wie kann Chrome die tatsächliche Bildgröße anzeigen?
- 6. Obj-C Ausnahme ausgelöst von libxml Fehlerhandler Rückruffunktion (Obj-C++) wird nicht in Obj-C
- 7. Wie bindet man Xamarin iOS Obj-C-Bibliothek mit Marshalling
- 8. Wie kann ich Variablen in system() Funktionen verwenden? (Obj-C)
- 9. Wie man Obj-C Kategorien in Python macht?
- 10. Obj-C CocoaPods + Swift-Framework
- 11. wie Bild umwandeln in obj-c base64
- 12. Eigenschaften in obj-c
- 13. Ausnahmebehandlung in Obj-C
- 14. Wie untersucht man tatsächliche Bitbake-Befehle, die ausgeführt werden
- 15. Fehlerbehandlung in CFReadStream - Obj-C
- 16. JavaScript: Kann man "Object.prototype.toString.call (obj)" für die Datentyperkennung verwenden?
- 17. Wie kann ich einem .obj-Modell in Three.js Farbe hinzufügen?
- 18. Wie kann ich die Fenstergröße und den Positionszustand einfach mit Obj-C speichern?
- 19. Mit obj-c typedef in Swift
- 20. c-style member vars in obj-c
- 21. Obj in Liste einfügen mit C# Linq
- 22. Suchmuster in String mit Regex in Obj-c
- 23. Laden von .obj in OpenGL in C
- 24. C++ 11 tatsächliche Systemzeit mit Millisekunden
- 25. Aufruf einer Obj-c-Methode mit einem Parameter
- 26. C++ lesen tatsächliche Eingabezeile
- 27. Wie kann ich die Programmliste mit C# finden?
- 28. Emojis mit obj-c sizeWithFont Mathe
- 29. Wie erstellt man eine Obj-Datei mit cl.exe
- 30. Wie untersucht man die tatsächliche Klasse von C++ - Objekt mit LLDB?
danken Ihnen für Ihre Antwort, können Sie die Art und Weise sagen Sie mir zur Verfügung stehenden Ein-/Ausgänge für einen Mac zuzugreifen. damit ich erkennen kann, ob TouchBar in der Hardwareliste verfügbar ist oder nicht. –
Ich aktualisiere meine Antwort – Ludovic
Bitte beachten Sie diesen Fall: Angenommen, der alte Mac-Benutzer hat sein Betriebssystem aktualisiert, aber keine TouchBar (Hardware), wie können wir identifizieren. (Bcz muss ich einige Optionen in Bezug auf Touch-Bar in den Einstellungen geben.) –