Autor-Archiv Tobias Stephan

VonTobias Stephan

Dremel Bosch Service Deutschland

Manchmal ist es ja schwierig die richtigen Kontaktinformationen herauszufinden. Der Service funktioniert grundsätzlich bei Dremel recht gut, es kann aber manchmal auch etwas dauern.

Telefon:
0800 8590216


Wenn das Gerät bereits in der Reparatur ist, gilt folgende Rufnummer:
071140040400
bei der Bandsage die 2 drücken

Mailadresse:
Dremel Service dremel.service@de.bosch.com

Wie man an der Mailadresse erkennt, steckt Bosch dahinter, also wundere Dich nicht. Da ich selber mehrere Drucker von Dremel einsetze und das sehr intensiv, stosse auch ich immer wieder an Grenzen. Wenn ich selber nicht reparieren kann, rufe ich nicht an, sondern schreibe eine Mail. Innerhalb von 1 – 3 Tagen gibt es eine Antwort. Bosch schickt bei Bedarf auch vorab das benötigte Verpackungsmaterial, GLS holt den Drucker dann nach Terminvereinbarung ab.

Einsendeadresse:
Robert Bosch GmbH
Max-Lang-Str. 40-46 
70771 Leinfelden-Echterdingen 

VonTobias Stephan

Kabelshop App für Leckerstecker Kabel

Der Leckerstecker Shop hat jetzt auch eine Kabel App!

Die Kabelshop App haben wir extra entwickelt, um unseren Kunden das Auffinden des passenden Kabels zu erleichtern. Alle Kabel im Leckerstecker Kabelshop sind fertig vorkonfektioniert und deshalb schnell lieferbar.

VonTobias Stephan

swiftui multiple pickers in a form

This is the first time I have used the Picker under SwiftUI. Simple insight – the OS decides which appearance your picker takes on. Of course you can decide that yourself. Now I had the strange behaviour that when I selected an entry of 5 pickers, all pickers were run through. My pickers are in a form. In this form a NavigationView. Solution of the problem was the Section. This example is not suitable for copy-paste because you are missing the data source. This is for illustration purposes only.

import SwiftUI

struct ContentView: View {
    @State public var selectedCrossSection = 0
    @State private var selectedColor = 0
    @State private var selectedLength = 0
    @State private var selectedEyelet1 = 0
    @State private var selectedEyelet2 = 0

    var selCrossSectionStr = ""

    @ObservedObject var oListDatasource = ListDataSource()
    var body: some View {

        NavigationView{


            VStack (spacing: 10) {
                Form {
                    Section {
                        Picker(selection: self.$selectedCrossSection, label: Text("Querschnitt")) {

                            ForEach(self.oListDatasource.CrossSections, id: \.self) { item in
                                Text(item.CrossSection).tag(item.rowIndex)
                            }
                        }
                            //.pickerStyle(SegmentedPickerStyle()).foregroundColor(Color.orange)

                            .font(Font.custom("ArialMT", size: 12))
                            .onReceive([self.selectedCrossSection].publisher.first()) { (value) in
                                print(self.oListDatasource.CrossSections[self.selectedCrossSection].CrossSection)

                        }
                    }
                    Section {
                        Picker(selection: self.$selectedColor, label: Text("Farbe")) {

                            ForEach(self.oListDatasource.Colors) { item in
                                Text(item.Color).tag(item.rowIndex)
                            }
                        }
                            //.pickerStyle(SegmentedPickerStyle()).foregroundColor(Color.orange)
                            .font(Font.custom("ArialMT", size: 12))
                    }

                    Section {
                        Picker(selection: self.$selectedLength, label: Text("Länge")) {

                            ForEach(self.oListDatasource.Lengths) { item in
                                Text(item.Length).tag(item.rowIndex)
                            }
                        }
                        .font(Font.custom("ArialMT", size: 12))
                    }

                Section {
                    Picker(selection: $selectedEyelet1, label: Text("Öse 1")) {

                        ForEach(oListDatasource.Eyelets) { item in
                            Text(item.Eyelet).tag(item.rowIndex)
                        }
                    }
                    .font(Font.custom("ArialMT", size: 12))
                }
                Section {
                    Picker(selection: $selectedEyelet2, label: Text("Öse 2")) {

                        ForEach(oListDatasource.Eyelets) { item in
                            Text(item.Eyelet).tag(item.rowIndex)
                        }
                    }
                    .font(Font.custom("ArialMT", size: 12))
                }
                }

            NavigationLink(destination: ListItems(selectedCrossSection: selectedCrossSection)) {
                Text("Liste").frame(width: 100)

            }
            }


            .navigationBarTitle("Kabelshop")

        }


    }
}
Mehrere Picker in einer View

Styles:

  • Navigation view style.
  • Wheel picker.
  • Segmented picker.
  • Date picker style.
VonTobias Stephan

SwiftUI mehrere Picker in einem Form Element

Ich habe nun zum ersten mal den Picker unter SwiftUI verwendet. Einfache Erkenntnis – das OS entscheidet, welche Erscheinung Dein Picker annimmt. Natürlich kannst Du das auch selber entscheiden. Nun hatte ich aber das seltsame verhalten, dass bei der Auswahl eines Eintrags von 5 Pickern, alle Picker durchlaufen wurden. Meine Picker sind in in einer Form. Um da Form ein NavigationView. Lösung des Problems war die Section. Dieses Beispiel ist für Copy-Paste nicht geeignet, weil Dir die Datenquelle fehlt. Das soll lediglich der Veranschaulichung dienen.

import SwiftUI

struct ContentView: View {
    @State public var selectedCrossSection = 0
    @State private var selectedColor = 0
    @State private var selectedLength = 0
    @State private var selectedEyelet1 = 0
    @State private var selectedEyelet2 = 0

    var selCrossSectionStr = ""

    @ObservedObject var oListDatasource = ListDataSource()
    var body: some View {

        NavigationView{


            VStack (spacing: 10) {
                Form {
                    Section {
                        Picker(selection: self.$selectedCrossSection, label: Text("Querschnitt")) {

                            ForEach(self.oListDatasource.CrossSections, id: \.self) { item in
                                Text(item.CrossSection).tag(item.rowIndex)
                            }
                        }
                            //.pickerStyle(SegmentedPickerStyle()).foregroundColor(Color.orange)

                            .font(Font.custom("ArialMT", size: 12))
                            .onReceive([self.selectedCrossSection].publisher.first()) { (value) in
                                print(self.oListDatasource.CrossSections[self.selectedCrossSection].CrossSection)

                        }
                    }
                    Section {
                        Picker(selection: self.$selectedColor, label: Text("Farbe")) {

                            ForEach(self.oListDatasource.Colors) { item in
                                Text(item.Color).tag(item.rowIndex)
                            }
                        }
                            //.pickerStyle(SegmentedPickerStyle()).foregroundColor(Color.orange)
                            .font(Font.custom("ArialMT", size: 12))
                    }

                    Section {
                        Picker(selection: self.$selectedLength, label: Text("Länge")) {

                            ForEach(self.oListDatasource.Lengths) { item in
                                Text(item.Length).tag(item.rowIndex)
                            }
                        }
                        .font(Font.custom("ArialMT", size: 12))
                    }

                Section {
                    Picker(selection: $selectedEyelet1, label: Text("Öse 1")) {

                        ForEach(oListDatasource.Eyelets) { item in
                            Text(item.Eyelet).tag(item.rowIndex)
                        }
                    }
                    .font(Font.custom("ArialMT", size: 12))
                }
                Section {
                    Picker(selection: $selectedEyelet2, label: Text("Öse 2")) {

                        ForEach(oListDatasource.Eyelets) { item in
                            Text(item.Eyelet).tag(item.rowIndex)
                        }
                    }
                    .font(Font.custom("ArialMT", size: 12))
                }
                }

            NavigationLink(destination: ListItems(selectedCrossSection: selectedCrossSection)) {
                Text("Liste").frame(width: 100)

            }
            }


            .navigationBarTitle("Kabelshop")

        }


    }
}
Mehrere Picker in einer View

Hier die Verfügbaren Styles

  • Navigation view style.
  • Wheel picker.
  • Segmented picker.
  • Date picker style.
VonTobias Stephan

SwiftUI Picker Element

Hier ein Beispiel für das SwiftUI Picker Element

struct ContentView: View {
    var strengths = ["Mild", "Medium", "Reif"]

    @State private var selectedStrength = 0

    var body: some View {
        NavigationView {
            Form {
                Section {
                    Picker(selection: $selectedStrength, label: Text("Sorte")) {
                        ForEach(0 ..< strengths.count) {
                            Text(self.strengths[$0])

                        }
                    }
                }
            }.navigationBarTitle("Wähle Deine bevorzugte Käsesorte")

        }
    }
}
VonTobias Stephan

SwiftUI Elements

Sr.No. UI Specific Elements
1 Text Fields

It is an UI element that enables the app to get user input.

2 Input types – TextFields

We can set the type of input that user can give by using the keyboard property of UITextField.

3 Buttons

It is used for handling user actions.

4 Label

It is used for displaying static content.

5 Toolbar

It is used if we want to manipulate something based on our current view.

6 Status Bar

It displays the key information of device.

7 Navigation Bar

It contains the navigation buttons of a navigation controller, which is a stack of view controllers which can be pushed and popped.

8 Tab bar

It is generally used to switch between various subtasks, views or models within the same view.

9 Image View

It is used to display a simple image or sequence of images.

10 Scroll View

It is used to display content that is more than the area of screen.

11 Table View

It is used for displaying scrollable list of data in multiple rows and sections.

12 Split View

It is used for displaying two panes with master pane controlling the information on detail pane.

13 Text View

It is used for diplaying scrollable list of text information that is optionally editable.

14 View Transition

It explains the various view transitions between views.

15 Pickers

It is used for displaying for selecting a specific data from a list.

16 Switches

It is used as disable and enable for actions.

17 Sliders

It is used to allow users to make adjustments to a value or process throughout a range of allowed values.

18 Alerts

It is used to give important information to users.

19 Icons

It is an image representation used for an action or depict something related to the application.

VonTobias Stephan

SwiftUI Elemente

Sr.No. UI Specific Elements
1 Text Fields

Es handelt sich dabei um ein UI-Element, das es der Anwendung ermöglicht, Benutzereingaben zu erhalten.

2 Input types – TextFields

Wir können die Art der Eingabe, die der Benutzer machen kann, über die Tastatureigenschaft von UITextField festlegen.

3 Buttons

Wird für die Handhabung von Benutzeraktionen verwendet.

4 Label

Wird zur Anzeige statischer Inhalte verwendet.

5 Toolbar

Wird benutzt, wenn wir etwas auf der Grundlage unserer gegenwärtigen Sichtweise manipulieren wollen.

6 Status Bar

Es zeigt die Schlüsselinformationen des Geräts an.

7 Navigation Bar

Es enthält die Navigationstasten eines Navigations-Controllers, d.h. eines Stapels von View-Controllern, die gedrückt und eingedrückt werden können.

8 Tab bar

Wird im Allgemeinen verwendet, um innerhalb derselben Ansicht zwischen verschiedenen Unteraufgaben, Ansichten oder Modellen zu wechseln.

9 Image View

Wird verwendet, um ein einfaches Bild oder eine einfache Bildsequenz anzuzeigen.

10 Scroll View

Wird verwendet, um Inhalte anzuzeigen, die mehr als die Bildschirmfläche umfassen./p>

11 Table View

Wird zur Anzeige einer blätterbaren Liste von Daten in mehreren Zeilen und Abschnitten verwendet.

12 Split View

Wird zur Anzeige von zwei Fenstern verwendet, wobei das Hauptfenster die Informationen im Detailfenster steuert.

13 Text View

Wird zum Anzeigen einer scrollbaren Liste von Textinformationen verwendet, die optional editierbar ist.

14 View Transition

Es erklärt die verschiedenen Ansichtenübergänge zwischen den Ansichten.

15 Pickers

Dient der Anzeige zur Auswahl bestimmter Daten aus einer Liste.

16 Switches

Wird als Deaktivierung und Aktivierung für Aktionen verwendet.

17 Sliders

Wird verwendet, um Benutzern die Möglichkeit zu geben, Anpassungen an einem Wert oder Prozess über einen Bereich zulässiger Werte vorzunehmen.

18 Alerts

Dient dazu, den Benutzern wichtige Informationen zu geben.

19 Icons

Es handelt sich um eine Bilddarstellung, die für eine Aktion verwendet wird oder etwas im Zusammenhang mit der Anwendung darstellt.

VonTobias Stephan

eXODA Clipboard Zwischenablage History Manager für iPhone

Diese App merkt sich den letzten Eintrag Deiner Zwischenablage auf Deinem iPhone oder iPad. Wenn Du Dich in einer App Deiner wahl befindest, kopiere Inhalte in die Zwischenablage. Wenn nun die eXODA Clipboard History in den Vordergrund holst, merkt sich die Zwischenablage App den Eintrag. Jetzt kannst Du alte gemerkte Einträge einfach wieder zurück in Deine Zwischenablage kopieren, in dem Du einen Eintrag mit einem Tap aktivierst. An der grauen Hintergrundfarbe des Eintrags erkennst Du, welche der Einträge gerade in Deiner Zwischenablage aktiv ist.

Ansicht auf dem iPad

Deine Daten werden nur auf Deinem Handy gespeichert. Sie bleiben so auch erhalten, wenn Du die App beendest oder Dein IOS Gerät neu gestartet wird.
Alte Einträge kannst Du natürlich durch wischen auch wieder löschen.

VonTobias Stephan

SwiftUI IOS Zwischenablage Pasteboard

So bentutz man die Zwischenablage aus dem Code. Das auslesen der Zwischenablage ist jedoch nur möglich, wenn sich die App im Vordergrund befindet.

// write to clipboard
UIPasteboard.general.string = "Hello world"

// read from clipboard
let content = UIPasteboard.general.string
VonTobias Stephan

Swift UI Mac OS remove help menu

I now want to publish my app as a Mac OS app as well. This is now possible. During the check, however, the app was rejected because no help was stored and no help text was displayed when clicking on the Help menu. With the following addition I simply removed the superfluous menu items.

//Insert in AppDelegate.swift
override func buildMenu(with builder: UIMenuBuilder) {
        super.buildMenu(with: builder)
        /* Do something */
        builder.remove(menu: .view)
        builder.remove(menu: .format)
        builder.remove(menu: .edit)
        builder.remove(menu: .file)
        builder.remove(menu: .window)
        builder.remove(menu: .help)
}