Xamarin의 watchOS 메뉴 컨트롤(강제 터치)

조사식 키트는 시계 앱 화면에서 구현될 때 메뉴를 트리거하는 Force Touch 제스처를 제공합니다.

Apple Watch showing a menu

Force Touch에 응답

인터페이스 컨트롤러에 Menu 대해 구현된 경우 사용자가 Force Touch를 수행할 때 메뉴가 표시됩니다. 메뉴가 구현되지 않은 경우 화면 애니메이션이 짧게 적용되어 다른 동작이 발생하지 않습니다.

강제 터치는 화면의 특정 요소와 연결되지 않습니다. 하나의 메뉴만 인터페이스 컨트롤러에 연결할 수 있으며 화면에서 Force Touch 누름이 발생하는 위치에 관계없이 표시됩니다.

1~4개의 메뉴 옵션을 표시할 수 있습니다.

메뉴 추가

디자인 타임에 스토리보드에 InterfaceController A Menu 를 추가해야 합니다. 메뉴 컨트롤을 인터페이스 컨트롤러로 끌면 스토리보드 미리 보기에는 시각적 표시가 없지만 메뉴는 문서 개요 패드에 표시됩니다.

Editing a menu at design time

메뉴 컨트롤에 최대 4개의 메뉴 항목을 추가할 수 있습니다. 속성 패드에서 구성할 수 있습니다. 다음 특성을 설정할 수 있습니다.

  • 제목 및
  • 사용자 지정 이미지 또는
  • 시스템 이미지: 수락, 추가, 차단, 거절, 정보, 어쩌면, 더 많은, 음소거, 일시 중지, 재생, 반복, 다시 시작, 공유, 순서 섞기, 스피커, 휴지통.

Action 속성 패드의 이벤트 섹션을 선택하고 작업 메서드의 이름을 입력하여 만듭니다. 부분 메서드는 다음과 같이 인터페이스 컨트롤러 클래스에서 구현할 수 있는 코드에 만들어집니다.

partial void MenuItemTapped ()
{
    Console.WriteLine ("A menu item was tapped.");
}

사용자 지정 이미지

iOS의 탭 이미지와 마찬가지로 메뉴 항목 이미지에는 배경을 표시할 수 있는 알파 채널이 있는 불투명 패턴이 필요합니다.

최상의 성능을 위해 메뉴에 사용되는 이미지를 조사식 앱 프로젝트(조사식 앱 확장 프로젝트 아님)에 추가해야 합니다.

메뉴 항목 변경

런타임에 추가

s 컬렉션을 MenuItem프로그래밍 방식으로 변경할 수 있지만 런타임 시 인터페이스 컨트롤러에 추가할 수 없습니다Menu. 다음과 같이 메서드를 AddMenuItem 사용합니다.

AddMenuItem (WKMenuItemIcon.Accept, "Yes", new ObjCRuntime.Selector ("tapped"));

Xamarin.iOS Watch Kit API에는 현재 다음과 같이 선언되어야 하는 메서드에 대한 AdMenuItem A가 필요합니다selector.

[Export("tapped")]
void MenuItemTapped ()
{
    Console.WriteLine ("The dynamically added 'Yes' menu item was tapped.");
}

런타임 시 제거

메서드를 ClearAllMenuItems 호출하여 프로그래밍 방식으로 추가된 모든 메뉴 항목을 제거할 수 있습니다.

스토리보드에 구성된 메뉴 항목은 지울 수 없습니다.