2015-12-06 19 views
8

Khi bạn mở ứng dụng dựa trên tài liệu được bật iCloud trên Mac mà không có bất kỳ tài liệu nào hiện đang mở, hộp thoại mở tệp sẽ xuất hiện. Làm thế nào để bạn ngăn chặn hộp thoại mở tệp xuất hiện khi khởi động? Tôi có một màn hình chào mừng mà tôi thích hiển thị.Ngăn chặn hộp thoại mở tệp iCloud xuất hiện khi khởi động trong OS X

+0

Tôi nghĩ rằng một ứng dụng dựa trên Tài liệu sẽ mở một tài liệu mới khi khởi động nếu không có tài liệu nào được mở vào lần bỏ thuốc cuối cùng ..? – insys

+0

Tôi đã không nhận ra điều này là có liên quan nhưng nó chỉ xảy ra với iCloud được kích hoạt. –

+0

Thật không may là không có giải pháp tôi có thể sử dụng ở đó. –

Trả lời

1

Để xác minh câu lệnh của bạn, tôi đã tạo một dự án ứng dụng dựa trên tài liệu mới trong XCode và chạy nó. Tôi không nhận được một hộp thoại tập tin mở! Tôi nhận được một tài liệu trống mới mở ra mặc dù. Đó có phải ý của bạn? Tôi không thể tìm thấy bất kỳ cách nào để ngăn chặn tài liệu trống ban đầu này được mở ra. Tôi quản lý để ngăn chặn hành vi này với hack sau, sử dụng khởi tạo của lớp Document của bạn:

- (instancetype)init { 
    self = [super init]; 
    if (self) { 
     // Add your subclass-specific initialization here. 
    } 
    NSLog(@"Document init"); 
    if (alreadysuppressed) 
     return self; 
    alreadysuppressed = 1; 
    return nil; 
} 

Như bạn thấy, nó làm cho việc sử dụng một biến (gọi là 'alreadysuppressed' ở đây) để nhớ nếu ức chế là đã được thực hiện, vì vậy nó sẽ được thực hiện một lần cho mỗi lần chạy ứng dụng. Tôi biết đó là một hack nhưng nó hoạt động cho các ứng dụng dựa trên tài liệu chung. Nếu bạn đang thực sự nhận được hộp thoại mở tập tin thay vì các hành vi trên thì tôi khuyên bạn nên thêm một hack tương tự để ứng dụng lớp đại biểu của bạn:

- (BOOL)applicationShouldOpenUntitledFile:(NSApplication *)sender 
{ 
    NSLog(@"applicationShouldOpenUntitledFile: %d", alreadysuppressed); 
    if (! alreadysuppressed) { 
     alreadysuppressed = 1; 
     return NO; 
    } 
    return YES; 
} 

Mặc dù tôi không thể kiểm tra kịch bản này như tôi không nhận được tập tin mở trong ứng dụng dựa trên tài liệu chung.

+0

Tôi đã thực hiện một số chỉnh sửa ở trên. Tôi đã không nhận ra điều này chỉ xảy ra với iCloud được kích hoạt đó là trường hợp của tôi. –

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