Mac의 C ++에서 모달 메시지 상자를 표시하는 방법은 무엇입니까?
-
20-09-2019 - |
문제
cfusernotificationDisplayalert 그리고 cfusernotificationDisplayNotice a 비 모달 창 원래 응용 프로그램 창을 선택하면 응용 프로그램 UI를 매우 바람직하지 않은 상태로 가져올 수 있기 때문에 이것은 나쁩니다 (메시지 상자는 숨겨져 있지만 응용 프로그램이 응답하지 않습니다).
오래된 SystemAlert
모달 이었지만 이것은 유니 코드 문자열을 완전히 지원하지 않습니다.
Mac 아래의 Modal 창으로 메시지 상자를 어떻게 표시 할 수 있습니까? Windows의 MessageBox와 비슷한 시간을 찾고 있습니까?
해결책 2
그것은 그것을 보인다 CreateStandardAlert
이것이 올바른 솔루션입니다 모달.
DialogRef theItem;
DialogItemIndex itemIndex;
CreateStandardAlert(kAlertNoteAlert, CFSTR("aaa"), CFSTR("bbb"), NULL, &theItem);
RunStandardAlert(theItem, NULL, &itemIndex);
다른 팁
나는 그것을 구현했다 CFUserNotificationDisplayAlert
사용자가 메시지 상자를 닫을 때까지 돌아 오지 않습니다.
코드를 살펴보고 싶다면 Mac의 MessageBox 기능Mac 용으로 구현 된 MessageBox 함수를 찾을 수 있으며 MB_OKCANCEL에 대해서만 구현되지만 코드가 거의 없으면 전체 MessageBox 플래그와 리턴 값을 다룰 수 있습니다. 좋은 시작점입니다.
살펴보십시오 NSBeginAlertSheet
기능 또는 NSAPP에서 :
- (void)beginSheet:(NSWindow *)sheet modalForWindow:(NSWindow *)docWindow
modalDelegate:(id)modalDelegate didEndSelector:(SEL)didEndSelector contextInfo:(void *)contextInfo
당신이 원하는 것일 수 있습니다. 여기 또한 시트 작업에 대한 좋은 기사입니다.
제휴하지 않습니다 StackOverflow