Lekcja 2. Cześć, jak ci na imię? – Xamarin.Mac
Dzisiaj zrobimy aplikację która się pyta użytkownika o imię i w dalszej działalności je wyświetla, a więc zaczynamy!!!
Otwieramy Visual Studio i zamiast tworzyć nowy projekt otwieramy projekt o nazwie “Hello World” który założyliśmy na wcześniejszym artykule (Nie było cię gdy tworzyliśmy aplikację “Hello World”? Nie martw się i kliknij tutaj) i otwieramy Xcode Interface Builder

pojawi nam się okno Xcode pewnie przypominające to:

Wtedy zmieniamy nazwę label (klikając na nią dwukrotnie) na “Cześć, jak ci na imię?” klikamy w “kółko z kwadracikiem w środku”(inaczej biblioteka obiektów) w prawym górnym rogu

wpisujemy w wyszukiwarce obiektów która nam się pojawi przy kliknięciu na Bibliotekę obiektów, i w wyszukiwarce obiektów wpisujemy wpisujemy Text Field

i przeciągamy w odpowiednie miejsce na okienku w Xcode. Teraz klikamy na “dwa połączone kółeczka”
*Co to Text Field ? To pole tekstowe które pozwala wprowadzać ciąg znaków (string) do aplikacji.

w prawym górnym rogu też jak dłużej przytrzymacie możecie zmienić pozycję swojego Asystenta kodu czyli “dwóch połączonych kółeczek” gdy klikniecie powinno wam się pojawić takie okno:

Klikacie na “ViewController.m”(kontroler zapisujący inicjalizację obiektów, więcej o tym w następnych artykułach) otwiera wam się wysuwana lista:

Klikamy na “ViewController.h” I otworzy wam się okno “ViewController’a” :

*Co robi ten asystent kodu? A więc do niego przypinamy obiekty żebyśmy mogli z nimi komunikować się w kodzie, inaczej nie będziemy ich “widzieć” w kodzie.
Teraz gdy macie otworzonego Asystenta podłączania obiektów przytrzymujecie na waszej klawiaturze “Ctrl” i przeciągacie ten obiekt za nawias(w naszym przypadku to Etykieta(Label)) jak to wygląda popatrzcie:

gdy opuścicie linkę łączącą pojawi wam się okno z informacją o właściwościach połączenia, można tam zmienić wiele rzeczy ale my tylko zmienimy nazwę etykiety na “Pytanie”

i klikacie “Connect” pojawi wam się kod
@property
(
strong
)
IBOutlet
NSTextField *Pytanie;
Co To Jest!!!???? No to wytłumaczę to kod połączenie naszej etykiety z kodem, dzisiaj za bardzo nie będziemy się w to wgłębiać
Powtórzcie tą samą operację z Text Field tylko nazwę zmieniacie na “Wprowadź_Imię” i klikacie “Connect”. Gdy połączycie Text Field’a z kodem kod połączenia będzie następujący:
@property
(
strong
)
IBOutlet
NSTextField *Wprowadź_Imię;
następnie klikamy znowu na nasze “kółko z kwadracikiem w środku”(Żeby dodać nowy obiekt klikamy na linijki inaczej nie widzimy naszego “kółka z kwadracikiem w środku” po dodaniu do interfejsu naszego button’a klikamy znowu na “złączone ze sobą dwa kółka”) i wyszukujemy w wyszukiwarce “Push Button” przeciągamy nasz Button pod Text Field i klikamy dwa razy na nasz Button i zmieniamy nazwę na “OK”. Teraz żeby połączyć nasz Button z kodem wykonujemy te samą operację tylko że zmieniamy typ połączenia na Action i nazwę zmieniamy na “OK_Button_Cliked” (Żeby dodać nowy obiekt klikamy na linijki inaczej nie widzimy naszego “kółka z kwadracikiem w środku” czyli biblioteki obiektów, po dodaniu do interfejsu klikamy znowu na ikonę Asystenta kodu(“złączone ze sobą dwa kółka”))

I klikamy “Connect”

Tak powinien wyglądać kod Połączenia buttona:
- (
IBAction
)OK_Button_Cliked:(
id
)sender;
*Pamiętajcie jeśli chcecie programować(odwoływać się do obiektu w kodzie źródłowym) dany obiekt zawsze musicie go podpiąć, ponieważ nie będzie widoczny z pozycji kodu
*Czym różni się Outlet od Action? Różni się tym że gdy np podepniemy przycisk jako Outlet nie będziemy mogli robić metody która wykonywana jest po kliknięciu w przycisk, tylko będziemy mogli zmieniać nazwę przesuwać i inne w ten deseń rzeczy. Labele oraz inne rzeczy nie potrzebujące metody “Co się stanie gdy kliknięto” podpinajcie połączeniem Outlet
Teraz przechodzimy do Visual Studio i klikamy w “ViewController.cs” i w metodzie o nazwie ViewDidLoad(); i pod kontrolką base.ViewDidLoad(); napiszemy kod który na początku będzie czyścił zawartość textową wszystkich naszych obiektów czyli możmy zrobić coś takiego:

Do pobrania tekstu lub zmienienia go, używamy kontrolki
Nazwa-Kontrolki.StringValue
Przykład:
Wprowadź_Imię.StringValue = string.Format("Twój text");
Więc idziemy dalej, teraz pod metodą “public override NSObject RepresentedObject
” musimy umieścić metodę która powoduję akcję jakiegoś przycisku(W naszym przypadku to jest OK_Button_Cliked
)
*Żeby to ułatwić, powiem wam ciekawostkę przejedzcie do “ViewController.desinger.cs”

Pojawi wam się:

Zamiast pisać metodę która się wykona po kliknięciu wdany przycisk czyli
partial void przykladowy_Przycisk(Foundation.NSObject sender)
{
}
możecie kopiować to, co znajduje się w pliku desingowym naszej appki( o nazwie “ViewController.desinger.cs”):
partial void przykladowy_Przycisk(Foundation.NSObject sender);
Najłatwiej to skopiować, usunąć średnik(.; ) i dodać nawiasy, szybsze i poręczniejsze
Więc wklejamy pod metodą : “public override NSObject RepresentedObject
” metodę która powoduje akcję przycisku czyli:
partial void OK_Button_Cliked(Foundation.NSObject sender)
{
}
*Pamiętajcie że gdy podepniecie dany przycisk o danej nazwie musicie tą nazwą którą podpieliśmy musimy później użyć w metodzie inaczej nie będzie działać
Gdy ją wepniecie już metodę odpowiadającą za akcję przycisku pod metodą “public override NSObject RepresentedObject
” to wprowadźcie do niej taki kod:
partial void OK_Button_Cliked(Foundation.NSObject sender)
{
Pytanie.StringValue = string.Format("Cześć, {0}",Wprowadź_Imię.StringValue);
Wprowadź_Imię.StringValue = string.Format("");
}
Wytłumaczę najpierw co ten kod robi a więc Pytanie(nasz label który pyta o imię użytkownika) bierzemy StringValue
zmienia napis na “Część, (IMIĘ UŻYTKOWNIKA)” oraz czyścimy w ten sam sposób, bierzemy StringValue
tekst jest równy “” czyli pustce i nasz TextField jest już bez imienia użytkownika..
Co to string.Format
?
string.Format
to funkcja( Język C# ) która umożliwia nam wstawiania danych w formacie liczba-obiekt czyli
int przykladowyobiekt = 1;
string Przyklad = string.Format("{0}",przykladowyobiekt);
i nie musimy dodawać obiektów w taki sposób:
string Przyklad = "Hej " + przykladowyobiekt+ "Co tam?";
Hint: Opisane dla mniej zaawansowanych w C#
Jak pewnie zauważyliście powyższy sposób jest mniej poręczniejszy od poprzedniego, po to właśnie jest string.Format (Więcej na temat kontrolek tutaj)
Co w następnym wpisie:
- Przełączanie między wświetlanymi widokami z pozycji kodu i bezpośrednio
- Poznanie typów ukazywania Widoków w Xamarin.Mac
- Wytłumaczenie działania typów
- Teoria i Praktyka działania ViewController’ów (Widoków) w Xamarin.Mac
2 Komentarze
Mikołaj · 29 grudnia, 2019 o 12:29 pm
Następna lekcja na temat Kontrolerów Widoków(View Controller) w Xamarin.Mac: http://na-macu.pl/2019/08/24/viewcontroller-xamarin-mac/
fleck 5600sxt 40000 · 5 kwietnia, 2020 o 2:17 pm
Right now it sounds like Expression Engine is the best blogging platform available right now.
(from what I’ve read) Is that what you’re using on your blog?