2009-03-22 30 views
25

Tôi có một NIB chứa hai cửa sổ, một là cửa sổ chính của ứng dụng hiển thị khi khởi chạy và cửa sổ kia là một trang tùy chỉnh (và do đó không hiển thị khi khởi chạy). Khi tờ được yêu cầu cuộc gọi điều khiển của tôi:Tại sao trang tính của tôi không được đính kèm vào cửa sổ mà nó chạy?

[NSApp beginSheet: sheetWindow modalForWindow: mainWindow modalDelegate: self didEndSelector: @selector(didEndSheet:returnCode:contextInfo:) contextInfo: nil];

hiển thị cửa sổ tờ và bắt đầu một phiên modal, nhưng cửa sổ có thanh tiêu đề chuẩn Aqua, không 'kết nối' để cửa sổ chính và có thể được di chuyển xung quanh giống như một cửa sổ thông thường. Không cần phải nói, đây không phải là mong muốn :-). Tại sao cửa sổ trang tính "không xuất hiện" của cửa sổ nó chạy, vì trang tính thường làm khi bắt đầu trong thời trang này?

Tôi đã tự hỏi liệu thực tế là tôi đã bắt đầu trang tính bên trong bộ điều khiển -awakeFromNib có thể có tác dụng hay không, vì vậy tôi đã di chuyển trang tính đến hành động của nút mà tôi có thể kích hoạt sau. Điều này đã không thay đổi hành vi. Tôi đã không nghĩ về bất cứ điều gì khác để thử. Tôi đang nhắm mục tiêu 10.5 SDK, sử dụng Xcode 3.1.

Chỉnh sửa: vì vậy có vẻ như tôi đã tạo một hộp thoại phương thức; các trang tính và hộp thoại ứng dụng phương thức đều được bắt đầu bằng phương thức -beginSheet:modalForWindow:modalDelegate:didEndSelector:contextInfo:. Nhưng làm thế nào để tôi chỉ ra rằng cửa sổ của tôi phải là một trang tính và không phải là một hộp thoại phương thức?

+0

Kiểm tra mainWindow không phải là không. –

+0

Tôi không thể thấy bất cứ điều gì sai về nó, có thể một số bối cảnh có thể giúp đỡ. –

+0

Bạn nên làm cho câu trả lời đó, Nathan. Nó gần như chắc chắn đúng. – Chuck

Trả lời

17

Nếu mainWindow bằng 0 thì trang tính sẽ được hiển thị dưới dạng cửa sổ/hộp thoại.

90

này xảy ra với tôi một vài ngày trước đây:

  • Bạn quên để thiết lập các cửa sổ ổ cắm của bộ điều khiển cửa sổ của bạn (chủ sở hữu file của của tập tin NIB). Như được chỉ định bởi Nathan, bạn có thể thấy rằng phương thức -[NSWindowController window] trả về không.
  • Bạn cũng phải bỏ chọn tùy chọn Hiển thị khi khởi chạy của trang tính.
+18

"Có thể nhìn thấy lúc khởi chạy" hóa ra là vấn đề của tôi - tờ giấy xuất hiện vào đúng thời điểm, nhưng bị ngắt kết nối khỏi cửa sổ của nó và sẽ không biến mất mặc dù orderOut của tôi: gọi. Cảm ơn bạn đã đăng bài này! –

+12

"Hiển thị khi khởi chạy" thực sự là vấn đề của tôi. Câu trả lời rất hữu ích. – Monolo

+3

Hiển thị khi khởi chạy cũng là vấn đề của tôi! – logancautrell

Các vấn đề liên quan