Video: Giới Thiệu và Cách Dùng tweak Flex Trên iPhone Jailbreak 2025
Để chức năng mã hoá địa lý của bạn hoạt động trong ứng dụng iOS của bạn, bạn sẽ phải làm một số mọi thứ trong bộ điều khiển Tìm. Hầu hết những gì bạn cần làm xoay quanh việc nhận được văn bản người dùng nhập vào. Bạn cũng sẽ phải có văn bản được mã hóa địa lý và có vị trí địa lý được triển khai như là một đối tượng mô hình Chú thích bởi mô hình Chuyến đi, bộ điều khiển Tìm sẽ thêm vào bản đồ.
Để truy cập văn bản, đầu tiên bạn cần phải tạo ra một lối thoát cho trường Văn bản. Thực hiện theo các bước sau:
-
Chọn Main_iPad. trong bảng điều khiển Dự án.
-
Chọn bộ điều khiển Chế độ xem chính trong Khung nhìn Tài liệu.
-
Chọn Trợ lý trong Bộ chọn Biên tập, và nếu MasterViewController. h không xuất hiện, điều hướng đến nó bằng cách sử dụng thanh Jump.
-
Trong phần phác thảo tài liệu, mở tam giác công khai cho phần Xem bảng thứ hai trong trình điều khiển Master View - Cảnh chính để đến ô Xem Bảng.
-
Mở ô Xem Bảng để hiển thị Chế độ xem Nội dung đang giữ nhãn Tìm và văn bản.
-
Mở tam giác công bố của ô đó để hiển thị trường Văn bản, và sau đó điều khiển từ trường Không biên dạng sang giao diện Master View (trong trình soạn thảo Trợ lý) giữa các lệnh @interface và -d, và thêm vào một cửa hàng có tên findText.
Đây là một cách khác để tạo ra lối thoát.
Một đối tượng UITextField là một điều khiển hiển thị các văn bản có thể chỉnh sửa và gửi một thông báo tới delegate của nó khi người dùng nhấn phím Return. Bạn thường sử dụng một đối tượng UITextField để cho phép người dùng nhập một số lượng nhỏ văn bản và sau đó làm điều gì đó với nó - như tìm kiếm cái gì đó hoặc thêm một số liên lạc mới.
Chọn trường Văn bản, chọn trình soạn thảo tiêu chuẩn trong Bộ chọn biên tập trên thanh công cụ Xcode, sau đó mở phần Tiện ích. Bạn có thể thiết lập một số thuộc tính Text field trong thanh tra Attributes.
Làm thế nào bạn sẽ biết khi người dùng đã nhập một số văn bản? Ngoài ra, làm thế nào để bạn có được bàn phím để hiển thị, và sau đó ẩn?
Khi một người sử dụng gõ vào một UITextField, nó sẽ trở thành câu trả lời đầu tiên, và bàn phím tự động tăng lên để cho phép người sử dụng nhập văn bản - bạn không phải làm một điều gì để làm điều đó xảy ra.
Khi người dùng nhập xong văn bản, anh ta ấn phím Return - phím Return có nhãn mà bạn đã quản lý để chuyển thành Go.
Khi phím Go được gõ, trường văn bản sẽ xác định xem nó có một delegate hay không và delegate đã triển khai một phương thức textFieldShouldReturn: - một trong những phương thức UITextFieldDelegate tùy chọn.Nếu delegate đã làm như vậy, nó sẽ gửi cho delegate các textFieldShouldReturn: message. Vì vậy, textFieldShouldReturn: là nơi để nắm bắt văn bản.
Để bắt văn bản và gửi nó tới FindController, bạn cần phải trở thành delegate của trường văn bản và thực hiện phương thức textFieldShouldReturn: Nhưng trước khi bạn làm điều đó, bạn cần phải làm một điều nữa trong Trình tạo Giao diện.
Bạn bắt đầu bằng cách làm cho MasterViewController một UITextFieldDelegate. Cập nhật MasterViewController. h với mã đậm để có thể chấp nhận giao thức UITextFieldDelegate.
#import @interface MasterViewController: UITableViewController @ tài sản (mạnh mẽ, không có hệ thống) DetailViewController * detailViewController; @ tài sản (yếu, nonatomic) IBOutlet UITextField * findText; -d
Việc nâng nặng sẽ được thực hiện trong phương thức textFieldShouldReturn của TextField: delegate. Các đại biểu sẽ được thông qua các lĩnh vực văn bản đang được chỉnh sửa như là một đối số, và điều khiển Master View sẽ vượt qua điều đó vào bộ điều khiển Tìm.
Trước tiên, bạn phải cập nhật việc thực hiện MasterViewController bằng cách thêm mã đậm vào MasterViewController. m.
#import "FindController h" @implementation MasterViewController #import "MasterViewController h" #import "DetailViewController h" #import "AppDelegate.h" #import "Chuyến đi h Bạn sẽ cần phải làm cho MasterViewController delegate textField. Để làm điều đó, thêm mã bằng đậm để xemDidLoad trong MasterViewController. m.
- (void) viewDidLoad {[super viewDidLoad]; AppDelegate * appDelegate = [[UIApplication sharedApplication] đại biểu]; tự. title = appDelegate. chuyến đi. Tên điểm đến; UIImageView * imageView = [[UIImageView alloc] initWithImage: [appDelegate. trip destinationImage]]; tự. tableView. backgroundView = imageView; UISwipeGestureRecognizer * swipeGesture = [[UISwipeGestureRecognizer alloc] initWithTarget: Tự thực hiện: @selector (handleSwipeGesture:)]; Vuốt cử chỉ. direction = UISwipeGestureRecognizerDirectionLeft; [tự. xem addGestureRecognizer: swipeGesture];
tự. findText. delegate = self; } Bây giờ bạn có thể thực hiện phương thức textFieldShouldReturn: delegate bằng cách thêm mã vào MasterViewController. m.
Bạn sẽ nhận thấy một số lỗi Live Issue ở đây. Bạn cần thêm thuộc tính findLocation vào FindController.
- (BOOL) textFieldShouldReturn: (UITextField *) textField {[textField resignFirstResponder]; nếu ([[UIDevice currentDevice] userInterfaceIdiom] == UIUserInterfaceIdiomPad) {FindController * findController = [[UIStoryboard storyboardWithName: @ "Main_iPad" bó: nil] instantiateViewControllerWithIdentifier: @ "Tìm"]; findController. findLocation = textField. bản văn; DetailViewController * currentDetailViewController; currentDetailViewController = [tự. splitViewController. viewControllers lastObject]; nếu (currentDetailViewController. masterPopoverController! = nil) [currentDetailViewController. masterPopoverController dismissPopoverAnimated: YES]; tự. splitViewController. delegate = findController; findController.popOverButton = currentDetailViewController. popOverButton; findController. masterPopoverController = currentDetailViewController. masterPopoverController; NSMutableArray * controllers = [NSMutableArray arrayWithObjects: (tự phân chia. ViewControllers) [0], findController, nil]; tự. splitViewController. viewControllers = controllers;} else {FindController * findController = [[UIStoryboard storyboardWithName: @ "Main_iPhone" bó: nil] instantiateViewControllerWithIdentifier: @ "Tìm"]; findController. findLocation = textField. bản văn; [tự. Điều đầu tiên mã thực hiện cho bạn là gửi một tin nhắn đến trường Text yêu cầu nó từ chức như là phản hồi đầu tiên:
[textField resignFirstResponder];
[textField resignFirstResponder];
Điều này có tác dụng phụ khi loại bỏ bàn phím.
Những gì bạn làm tiếp theo là một trường hợp khác khi điều gì xảy ra tùy thuộc vào việc ứng dụng của bạn đang chạy trên iPad hay iPhone.
Nếu bạn đang chạy trên iPad, bạn nhanh chóng FindController từ Main_iPad. kịch bản.
FindController * findController = [[UIStoryboard storyboardWithName: @ "Main_iPad" bó: nil] instantiateViewControllerWithIdentifier: @ "Tìm"];
Sau đó bạn chỉ định văn bản từ textField cho thuộc tính findLocation FindController (bạn sẽ thêm vào FindController ngay).
findController. findLocation = textField. bản văn;
Sau đó bạn bỏ qua popover.
DetailViewController * currentDetailViewController; currentDetailViewController = [tự. splitViewController. viewControllers lastObject]; nếu (currentDetailViewController. masterPopoverController! = nil) [currentDetailViewController. masterPopoverController dismissPopoverAnimated: YES];
Sau đó, bạn chỉ định các thuộc tính popOverButton và masterPopoverController và làm cho FindController các đại lý điều khiển Split View.
tự. splitViewController. delegate = findController; findController. popOverButton = currentDetailViewController. popOverButton; findController. masterPopoverController = currentDetailViewController. masterPopoverController;
Sau đó, bạn chỉ cần tạo FindController bộ điều khiển Xem chi tiết mới trong thuộc tính viewControllers của điều khiển Xem Chia.
NSMutableArray * controllers = [NSMutableArray arrayWithObjects: (tự phân chia. ViewControllers) [0], findController, nil]; tự. splitViewController. viewControllers = bộ điều khiển;
Lưu ý rằng, nếu đó là iPhone bạn đang xử lý, bạn nhanh chóng FindController, gán thuộc tính findLocation, và đẩy nó vào ngăn xếp Điều khiển Điều khiển, làm cho khung nhìn trượt vào vị trí.
FindController * findController = [[UIStoryboardstoryboardWithName: @ "Main_iPhone" bó: nil] instantiateViewControllerWithIdentifier: @ "Tìm"]; findController. findLocation = textField. bản văn; [tự. navigationController pushViewController: findController hoạt hình: YES];
Cuối cùng bạn trả lại YES để có trường Text thực hiện hành vi mặc định của nó.
