Gần đây tôi đã bắt đầu học Objective-C và tôi đã gặp phải một vấn đề nhỏ. Tôi đang cố gắng sử dụng một bộ điều khiển xem tùy chỉnh mà không có một ngòi, do đó, xem được tạo ra trong mã. Chính bộ điều khiển chế độ xem được tạo trong AppDelegate.Tạo một NSViewController tùy chỉnh mà không có một nib
Khi tôi chạy chương trình, trước tiên nó sẽ hiển thị cửa sổ trống mặc định. Sau khi tôi đóng cửa sổ này, một cửa sổ thứ hai bật lên mà chính xác chứa khung nhìn. Tôi rõ ràng không muốn cửa sổ đầu tiên xuất hiện, nhưng tôi không biết nguyên nhân gây ra nó. Thông tin duy nhất tôi có thể tìm thấy về chủ đề này là để phát triển iOS, điều này không hoàn toàn giống nhau.
Tôi cũng nhận được tin nhắn này mà tôi không thực sự chắc chắn những gì nó có nghĩa là: Không thể kết nối orderFrontStandardAboutPanel hành động: để nhắm mục tiêu của lớp MainViewController
appdelegate:
- (void)applicationDidFinishLaunching:(NSNotification *)aNotification
{
mainViewController = [[MainViewController alloc] initWithFrame:_window.frame];
_window.contentView = mainViewController.view;
}
MainViewController:
- (id)initWithFrame:(NSRect)frame
{
self = [super initWithNibName:nil bundle:nil];
if (self)
{
[self setView:[[MainView alloc] initWithFrame:frame]];
[self loadView];
}
return self;
}
Tôi đoán bạn đang gọi loadview 2 lần. 2. loadview một cách rõ ràng. Mục đích của -loadView là, uh, tải chế độ xem. Nó được gọi khi bạn truy cập thuộc tính khung nhìn của trình điều khiển xem và giá trị của thuộc tính đó là 0. Trong trường hợp này, bạn đang truy cập tự SetView trong bộ khởi tạo của bạn, vì vậy đó là khi -loadView được gọi. Một lần nữa bạn đang gọi loadView cụ thể. Đây có thể là một lý do khiến bạn thấy thời gian trống đầu tiên hoặc khi iOS đang tải ứng dụng của bạn, nó hiển thị tải hình ảnh. – Srivathsa
Đó là những gì gây ra nó, cảm ơn! – user2616316
Ok tuyệt vời nó giải quyết vấn đề của bạn .. Sau đó, bạn có thể upvote cho bình luận của tôi. – Srivathsa