간만에 iOS 앱을 배포하기 위해 업로드 하는데 아래와 같은 에러가 발생되었다.


ERROR ITMS-90101: "This bundle does not support one or more of the devices supported by the previous app version. Your app update must continue to support all devices previously supported. You declare supported devices in Xcode with the Targeted Device Family build setting. Refer to QA1623 for additional information: https://developer.apple.com/library/ios/#qa/qa1623/_index.html"


이유는 디바이스 정보를 Universal 에서 iPhone/iPod 로 변경했는데 이것 때문에 에러 메세지가 나왔던것이었다.

기존대로 Universal 을 선택하고 업로드 하니 에러가 더이상 발생되지 않았다.

KeyGesture 를 이용해서 특정 키입력 시 이벤트 처리를 할수 있습니다.

아래는 Ctrl과 X를 동시에 눌렀을 경우 팝업을 띄우는 예제입니다.

 

using System.Windows;

using System.Windows.Input;

 

namespace WpfApp

{

    /// <summary>

    /// MainWindow.xaml에 대한 상호 작용 논리

    /// </summary>

    public partial class MainWindow : Window

    {

        KeyGesture gestCut = new KeyGesture(Key.X, ModifierKeys.Control);

 

        public MainWindow()

        {

            InitializeComponent();

 

            Title = "KeyGesture";

        }

 

        protected override void OnPreviewKeyDown(KeyEventArgs args)

        {

            if (gestCut.Matches(null, args))

            {

                CtrlXMethod();

                args.Handled = true;

            }

        }

 

 

        private void CtrlXMethod()

        {

            MessageBox.Show("Ctrl+X");

        }

    }

}

 

 

 

색상을 그리드 형태로 나열하여 선택 시 배경색이 바뀌는 코드입니다.

 

ColorGridBox.cs

using System.Collections.Generic;

using System.Reflection;

using System.Windows;

using System.Windows.Controls;

using System.Windows.Controls.Primitives;

using System.Windows.Media;

using System.Windows.Shapes;

 

namespace WpfApp

{

    class ColorGridBox : ListBox

    {

        public ColorGridBox()

        {

            // ItemsPanel template 을 정의합니다.

            FrameworkElementFactory factoryUniformGrid = new FrameworkElementFactory(typeof(UniformGrid));

            // 10 개 컬럼을 갖도록 설정합니다.

            factoryUniformGrid.SetValue(UniformGrid.ColumnsProperty, 10);

            // template 을 ItemPanel 에 적용합니다.

            ItemsPanel = new ItemsPanelTemplate(factoryUniformGrid);

 

            // Color 이름을 가져옵니다.

            List<string> colorStringList = new List<string>();

            PropertyInfo[] propertyInfos = typeof(Colors).GetProperties();

            foreach (PropertyInfo propertyInfo in propertyInfos)

            {

                colorStringList.Add(propertyInfo.Name);

            }

 

            // Color 를 체웁니다.

            foreach (string colorString in colorStringList)

            {

                // 사작형으로 표시합니다.

                Rectangle rectangle = new Rectangle();

                rectangle.Width = 15;

                rectangle.Height = 15;

                rectangle.Margin = new Thickness(4);

                rectangle.Fill = (Brush)typeof(Brushes).GetProperty(colorString).GetValue(null, null);

 

                // ListBox 에 Add 합니다.

                Items.Add(rectangle);

 

                // 툴팁을 정의합니다.

                ToolTip toolTip = new ToolTip();

                toolTip.Content = colorString;

                rectangle.ToolTip = toolTip;

            }

 

            // Value 값을 사각형의 Fill 값으로 지정합니다.

            SelectedValuePath = "Fill";

        }

    }

}

 

 

 

 

MainWindow.xaml.cs

using System.Windows;

 

namespace WpfApp

{

    /// <summary>

    /// MainWindow.xaml에 대한 상호 작용 논리

    /// </summary>

    public partial class MainWindow : Window

    {

        public MainWindow()

        {

            InitializeComponent();

 

            Title = "Select Color Grid";

 

            ColorGridBox colorGridBox = new ColorGridBox() { Width = 350, VerticalAlignment = VerticalAlignment.Center };

            colorGridBox.SetBinding(ColorGridBox.SelectedValueProperty, "Background");

            colorGridBox.DataContext = this;

 

            Content = colorGridBox;

        }

    }

}

 

 

 

 

+ Recent posts